目次へ

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

}

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp
  • シナジーマーケティング研究開発グループブログ