• 追加された行はこの色です。
  • 削除された行はこの色です。
#navi(../)
*JTabbedPaneでタブを追加削除 [#t9a9869a]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2003-11-21~
更新日:&lastmod;

#contents
**概要 [#ib9777ad]
ポップアップメニューを使って、JTabbedPaneにタブを追加、削除します。

http://terai.xrea.jp/swing/tabbedpane/screenshot.png

**サンプルコード [#o2e3e984]
 private void showTabPop(MouseEvent e) {
   JPopupMenu pop = new JPopupMenu();
   AbstractAction action = new NewTabAction(MENUITEM_NEWTAB, null);
   pop.add(action);
   pop.addSeparator();
   action = new ClosePageAction(MENUITEM_CLOSEPAGE, null);
   
   int num = tab.getUI().tabForCoordinate(tab, e.getX(), e.getY());
   action = new ClosePageAction(MENUITEM_CLOSEPAGE, null);
   action.setEnabled(num>0?true:false);
   //boolean flg = false;
   //for(int i=0;i<tab.getTabCount();i++) {
   //  if(tab.getBoundsAt(i).contains(e.getPoint())) {
   //    flg = true;
   //    break;
   //  }
   //}
   //action.setEnabled(flg);
   pop.add(action);
   pop.addSeparator();
   action = new CloseAllAction(MENUITEM_CLOSEALL, null);
   pop.add(action);
   action = new CloseAllButActiveAction(MENUITEM_CLOSEALLBUTACTIVE, null);
   pop.add(action);
   pop.show(tab, e.getX(), e.getY());
 }

-[[サンプルを起動>http://terai.xrea.jp/swing/tabbedpane/sample.jnlp]]
-[[jarファイル>http://terai.xrea.jp/swing/tabbedpane/sample.jar]]
-[[ソース>http://terai.xrea.jp/swing/tabbedpane/src.zip]]

**解説 [#k9a59fc8]
上記のサンプルでは、ポップアップメニューから、タブの追加、削除などを行うようになっています。

削除はタブタイトル上で右クリックしたときのみ、選択することができます。タブタイトル上でマウスがクリックされたかどうかは、getUI()でTabbedPaneUIを継承したクラスを取得し、このtabForCoordinateメソッドで判定しています。

削除メニューは、タブタイトル上で右クリックされた場合のみ選択可となります。タブタイトル上でマウスがクリックされたかどうかは、getUI()でTabbedPaneUIを継承したクラスを取得し、このtabForCoordinateメソッドで判定しています。
**コメント [#hd9a4c5d]

#comment