概要

ポップアップメニューを使って、JTabbedPaneにタブを追加、削除します。

サンプルコード

JPopupMenu popup = new JPopupMenu() {
  @Override public void show(Component c, int x, int y) {
    //JDK 1.3 closePageAction.setEnabled(tabs.getUI().tabForCoordinate(tabs, x, y) >= 0);
    closePageAction.setEnabled(tabs.indexAtLocation(x, y) >= 0);
    closeAllAction.setEnabled(tabs.getTabCount() > 0);
    closeAllButActiveAction.setEnabled(tabs.getTabCount() > 0);
    super.show(c, x, y);
  }
};
view all

解説

上記のサンプルでは、ポップアップメニューから、タブの追加、削除などが実行できます。

削除メニューは、タブタイトル上で右クリックされた場合のみ選択可となります。タブタイトル上でマウスがクリックされたかどうかは、JDK 1.4で導入されたJTabbedPane#indexAtLocation(...)メソッドで判定(タブ以外の場所の場合、-1が返される)しています。

参考リンク

JTabbedPane##indexAtLocation(int, int) (Java Platform SE 8)

コメント