ユーザインタフェース 7章 コンテナ2
- 7.1. javax.swing.JScrollPane
- 7.2. javax.swing.JTabbedPane
- 7.3. JToolBar
7.2. javax.swing.JTabbedPane
「JTabbedPane」は複数のコンポーネントを重ねて入れておき、それをタブによって切り替えて見せるためのコンポーネントです。「CardLayout」とよく似た動作をしますが、自動的にタブがつく分、「JTabbedPane」の方が便利です。インスタンスの作成は以下のようにします。
JTabbedPane tabbedPane=new JTabbedPane();
引数を1つ取るコンストラクタもあり、こちらではタブが表示される位置を指定する事ができます。この例の場合には、タブは左側につきます。
JTabbedPane tabbedPane=new JTabbedPane(SwingConstants.LEFT);
タブの追加は「addTab」メソッドを使用します。
tabbedPane.addTab("label", JLabel("label"));
1つ目の引数はタブのタイトル、2つ目はそのタブに追加するコンポーネントです。またタブは0から順番に番号が割りあてられていきます。「removeTabAt」メソッドで番号を指定すると、該当するタブが削除されます。以下は「JTabbedPane」を用いたサンプルウィンドウです。
(実習課題2)
以下のサンプルプログラムを作成しなさい。
- ウィンドウに直接、配置されるコンポーネントは「JTabbedPane」1つ。
- 「JTabbedPane」に配置されるタブは3つで、それぞれが持つコンポーネントは以下のとおり。タブの名前、および各ラベル・ボタンのテキスト等は任意。
- ラベル1つ
- ボタン1つ
- ラジオボタン3つ
- タブが切り替わる毎に、ウィンドウのタイトルがタブの名前になるようにする事。
- (ヒント)「JTabbedPane」の「addChangeListener」メソッドを使用する事。
- (ヒント)現在のタブは「getSelectedIndex」メソッドで。
- (ヒント)ウィンドウタイトルの変更は「setTitle」メソッドで。