解答例 - 実習課題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); } }