Swing/TabWithCloseIcon のバックアップ(No.12)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - 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にタブを閉じるアイコンを追加
Posted by aterai at 2006-03-20
JTabbedPaneにタブを閉じるアイコンを追加
JTabbedPaneにタブを閉じるためのアイコンやボタンを追加します。以下の参考リンクから引用したコードをほぼそのまま引用して紹介しています。
- &jnlp;
- &jar;
- &zip;
サンプルコード
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);
}
}
}
View in GitHub: Java, Kotlin解説
- JTabbedPaneWithCloseButton(上)
TabbedPaneLayoutを使用して、ボタンをタブの中にレイアウトしています。
- JTabbedPaneWithCloseIcons(中)
JTabbedPaneには、タブにアイコンを表示する機能があるので、これを利用しています。タブのクリックされた位置がアイコン上かどうかで、そのタブを閉じるかどうかを判断しています。
- CloseableTabbedPane(下)
JTabbedPaneWithCloseIconsの改良版です。アイコンの位置、マウスがアイコン上に来たときの描画機能などが追加されています。
上記のサンプルコードは、一番簡単なJTabbedPaneWithCloseIconsのものを掲載しています。
Java SE 6 では、JTabbedPaneのタブ部分に、文字列・アイコンに加えSwingコンポーネントが使えるようになっているので、上記のサンプルはもっと簡単に実現できるようになっています。
参考リンク
- Swing (Archive) - Adding a close icon to a JTabbedPane tab
- Swing - JTabbedPane with close Icons
- Swing (Archive) - 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