解答例 - 実習課題2 - 7.コンテナ2
(実習課題2)
以下のサンプルプログラムを作成しなさい。
- ウィンドウに直接、配置されるコンポーネントは「JTabbedPane」1つ。
- 「JTabbedPane」に配置されるタブは3つで、それぞれが持つコンポーネントは以下のとおり。タブの名前、および各ラベル・ボタンのテキスト等は任意。
- ラベル1つ
- ボタン1つ
- ラジオボタン3つ
- タブが切り替わる毎に、ウィンドウのタイトルがタブの名前になるようにする事。
- (ヒント)「JTabbedPane」の「addChangeListener」メソッドを使用する事。
- (ヒント)現在のタブは「getSelectedIndex」メソッドで。
- (ヒント)ウィンドウタイトルの変更は「setTitle」メソッドで。
解答例
/**
* TabbedPaneFrame.java
* TECHSCORE Javaユーザインタフェース7章 実習課題2
*
* Copyright (c) 2004 Four-Dimensional Data, Inc.
*/
package com.techscore.ui.chapter7.exercise2;
import java.awt.GridLayout;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTabbedPane;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class TabbedPaneFrame extends JFrame implements ChangeListener {
private JTabbedPane tabbedPane;
public TabbedPaneFrame() {
super("TabbedPaneFrame");
setDefaultCloseOperation(EXIT_ON_CLOSE);
tabbedPane = new JTabbedPane();
tabbedPane.addChangeListener(this);
getContentPane().add(tabbedPane);
tabbedPane.add("label", new JLabel("label"));
tabbedPane.add("button", new JButton("button"));
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3, 1));
tabbedPane.add("radio", panel);
ButtonGroup bg = new ButtonGroup();
JRadioButton radio1 = new JRadioButton("radio button 1");
JRadioButton radio2 = new JRadioButton("radio button 2");
JRadioButton radio3 = new JRadioButton("radio button 3");
radio1.setSelected(true);
bg.add(radio1);
bg.add(radio2);
bg.add(radio3);
panel.add(radio1);
panel.add(radio2);
panel.add(radio3);
pack();
setSize(200, 120);
}
public void stateChanged(ChangeEvent event) {
setTitle(tabbedPane.getTitleAt(tabbedPane.getSelectedIndex()));
}
public static void main(String args[]) {
new TabbedPaneFrame().setVisible(true);
}
}

