Javaで単一のJTabbedPaneに複数のタブを挿入する方法
JTabbedPaneとは
- JTabbedPaneはJComponentクラスを拡張したコンポーネントで、一度に表示できるタブは1つだけです。
- 各タブには1つのコンポーネントが関連付けられており、そのタブが選択されると対応するコンポーネントが表示されます。
- JTabbedPaneは、タブが選択された際にChangeListenerインターフェースを通じてイベントを発生させることができます。
- さらに、1つのJTabbedPaneに複数のタブを挿入することも可能です。JTabbedPaneの主なメソッドには、addTab()、fireStateChanged()、getTabPlacement()、setSelectedIndex()、getTabCount()などがあります。
コード例
以下のサンプルでは、再帰処理を使ってネスト(入れ子)構造のタブペインを生成し、各タブの表示位置(上・右・下・左)を順番に切り替えています。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class NestedJTabbedPaneTest extends JFrame {
public NestedJTabbedPaneTest() {
setTitle("Nested JTabbedPane test");
setLayout(new BorderLayout());
JTabbedPane tabbedPane = new JTabbedPane();
add(BorderLayout.CENTER, tabbedPane);
createNestedTab(tabbedPane, 1);
setSize(375, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
protected void createNestedTab(JTabbedPane jtp, int count) {
if (count > 5) return;
JTabbedPane tp = new JTabbedPane();
tp.setTabPlacement(getNextOrientation(jtp.getTabPlacement()));
jtp.addTab("Tab #" + count, tp);
createNestedTab(tp, count+1);
}
private int getNextOrientation(int tabPlacement) {
if (tabPlacement == JTabbedPane.TOP) return JTabbedPane.RIGHT;
if (tabPlacement == JTabbedPane.RIGHT) return JTabbedPane.BOTTOM;
if (tabPlacement == JTabbedPane.BOTTOM) return JTabbedPane.LEFT;
else return JTabbedPane.TOP;
}
public static void main(String []args) {
new NestedJTabbedPaneTest();
}
}コードのポイント
createNestedTab()メソッドが自分自身を呼び出すことで、5階層までのネストしたタブを自動的に生成します。getNextOrientation()メソッドにより、タブの配置位置が「上→右→下→左」の順にローテーションされます。addTab()メソッドの第1引数にタブ名、第2引数に表示するコンポーネントを渡します。
実行結果

このように、JTabbedPaneを入れ子にすることで、1つのウィンドウ内に多階層のタブ構造を実現できます。設定画面やカテゴリ分けされた情報表示など、多くの項目を整理して表示したい場合に非常に便利な手法です。
-
JavaのJMenuからJTabbedPaneに新しいタブを追加する方法
JTabbedPaneとはJTabbedPaneは、JComponentクラスを継承したSwingコンポーネントの一つで、複数のパネルをタブ形式で簡単に切り替えられるようにするUI部品です。各タブには1つのコンポーネントが関連付けられており、そのタブが選択されると対応するコンポーネントが表示されます。JTabbedPaneは、タブが選択されたタイミングでChangeListenerインターフェースを通じてイベントを発生させることができます。JTabbedPaneの主なメソッドには、add()、addTab()、fireStateChanged()、createChangeListener()、
-
JavaのJToggleButton実装ガイド:ON/OFF切替ボタンの作り方を解説
JToggleButtonとは JToggleButtonはAbstractButtonを拡張したクラスで、クリックするたびにONとOFFが切り替わるトグルボタンを実現するために使用されます。通常のボタンと異なり、押した状態を保持できるのが特徴です。 JToggleButtonの主な特徴 最初に押されたときは押し込まれた状態のままとなり、もう一度押してはじめて元の状態(押されていない状態)に戻ります。 ボタンが押されるたびにActionEventが発生します。 さらに、JToggleButtonはItemEventも発生させることができます。このイベントは、選択状態という概念を持つコンポー