Swing/HoverCloseButton のバックアップ(No.1)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/HoverCloseButton へ行く。
TITLE:JTabbedPaneのCloseButtonをフォーカスがある場合だけ表示
JTabbedPaneのCloseButtonをフォーカスがある場合だけ表示
編集者:Terai Atsuhiro
作成日:2008-01-21
更新日:2021-12-23 (木) 17:18:41
概要
JTabbedPaneのタブを閉じるボタンを、タブにフォーカスがある場合だけ表示します。
#screenshot
サンプルコード
public MyJTabbedPane() {
super();
setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
addMouseMotionListener(new MouseMotionAdapter() {
private int prev = -1;
@Override public void mouseMoved(MouseEvent e) {
JTabbedPane source = (JTabbedPane)e.getSource();
int focussed = source.indexAtLocation(e.getX(), e.getY());
int selected = source.getSelectedIndex();
if(focussed==prev) return;
for(int i=0;i<source.getTabCount();i++) {
TabPanel tab = (TabPanel)source.getTabComponentAt(i);
tab.setButtonVisible(i==selected || i==focussed);
}
prev = focussed;
}
});
}
- &jnlp;
- &jar;
- &zip;
解説
上記のサンプルでは、JDK 6 で導入されたタブにコンポーネントを追加する機能を使って、タブにフォーカスがある場合だけJButtonを表示します。