• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JTabbedPaneのCloseButtonをフォーカスがある場合だけ表示
#navi(../)
*JTabbedPaneのCloseButtonをフォーカスがある場合だけ表示 [#s04e3478]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2008-01-21~
更新日:&lastmod;

#contents

**概要 [#e5818d53]
JTabbedPaneのタブを閉じるボタンを、タブにフォーカスがある場合だけ表示します。

#screenshot

**サンプルコード [#h7af8be1]
#code{{
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;

**解説 [#bb2c52ca]
上記のサンプルでは、JDK 6 で導入されたタブにコンポーネントを追加する機能を使って、タブにフォーカスがある場合だけJButtonを表示します。
上記のサンプルでは、JDK 6 で導入されたタブにコンポーネントを追加する機能を使って、タブ上にマウスカーソルがある場合や、フォーカスがある場合にだけJButtonを表示しています。

**参考リンク [#c695580a]
-[[JTabbedPaneにタブを閉じるボタンを追加>Swing/TabWithCloseButton]]
-[[JTabbedPaneのタブ文字列をハイライト>Swing/TabTitleHighlight]]

**コメント [#e680e90e]
#comment