Swing/TabWithCloseIcon のバックアップ(No.8)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/TabWithCloseIcon へ行く。
- 1 (2006-03-20 (月) 12:44:58)
- 2 (2006-03-21 (火) 15:06:03)
- 3 (2006-06-12 (月) 11:42:47)
- 4 (2006-08-17 (木) 18:57:45)
- 5 (2006-08-18 (金) 08:15:54)
- 6 (2006-09-01 (金) 14:54:14)
- 7 (2007-01-31 (水) 15:36:48)
- 8 (2007-03-09 (金) 01:27:32)
- 9 (2007-07-26 (木) 17:12:09)
- 10 (2007-07-26 (木) 23:18:33)
- 11 (2010-09-02 (木) 08:06:15)
- 12 (2012-08-17 (金) 18:36:47)
- 13 (2013-03-13 (水) 15:35:44)
- 14 (2013-08-27 (火) 18:06:51)
- 15 (2013-09-17 (火) 14:44:02)
- 16 (2014-11-25 (火) 03:03:31)
- 17 (2015-02-04 (水) 18:51:22)
- 18 (2016-12-06 (火) 15:08:38)
- 19 (2017-12-03 (日) 00:02:27)
- 20 (2019-08-27 (火) 16:11:28)
- 21 (2021-04-17 (土) 02:57:32)
TITLE:JTabbedPaneにタブを閉じるアイコンを追加
JTabbedPaneにタブを閉じるアイコンを追加
編集者:Terai Atsuhiro
作成日:2006-03-20
更新日:2021-04-17 (土) 02:57:33
概要
JTabbedPaneにタブを閉じるためのアイコンやボタンを追加します。以下の参考リンクから引用したコードをほぼそのまま引用して紹介しています。
#screenshot
サンプルコード
public class JTabbedPaneWithCloseIcons extends JTabbedPane { public JTabbedPaneWithCloseIcons() { super(); addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { tabClicked(e); } }); } public void addTab(String title, Component component) { this.addTab(title, component, null); } public void addTab(String title, Component component, Icon extraIcon) { super.addTab(title, new CloseTabIcon(extraIcon), component); } private void tabClicked(MouseEvent e) { int index = getUI().tabForCoordinate(this, e.getX(), e.getY()); if(index<0) return; Rectangle rect=((CloseTabIcon)getIconAt(index)).getBounds(); if(rect.contains(e.getX(), e.getY())) { removeTabAt(index); } } }
- &jnlp;
- &jar;
- &zip;
解説
- JTabbedPaneWithCloseButton(上)
TabbedPaneLayoutを使用して、ボタンをタブの中にレイアウトしています。
- JTabbedPaneWithCloseIcons(中)
JTabbedPaneには、タブにアイコンを表示する機能があるので、これを利用しています。タブのクリックされた位置がアイコン上かどうかで、そのタブを閉じるかどうかを判断しています。
- CloseableTabbedPane(下)
JTabbedPaneWithCloseIconsの改良版です。アイコンの位置、マウスがアイコン上に来たときの描画機能などが追加されています。
上記のサンプルコードは、一番簡単なJTabbedPaneWithCloseIconsのものを掲載しています。
Java SE 6 では、JTabbedPaneのタブ部分に、文字列・アイコンに加えSwingコンポーネントが使えるようになっているので、上記のサンプルはもっと簡単に実現できるようになっています。
参考リンク
- Java Forums - Adding a close icon to a JTabbedPane tab
- Java Forums - JTabbedPane with close Icons
- Java Forums - Closable Tab in JTabbedPane
- CloseAndMaxTabbedPane: An enhanced JTabbedPane
- InfoNode - Java Components
- Kirill Grouchnikov's Blog: Spicing up your JTabbedPane - part II
- JTabbedPaneでタブを追加削除
- More Enhancements in Java SE 6 (Mustang)