目次へ

解答例 - 実習課題3 - 7.コンテナ2

(実習課題3)

実習課題2のプログラムに「JToolBar」を追加しなさい。

  • 「JToolBar」に追加されるコンポーネントはボタン3つ。それぞれ「JTabbedPane」のタブ3つに対応する。
  • ボタンのテキストとタブの名前は同じにする事。
  • ボタンが押されると、該当するタブが前面に表示されるようにする事。

解答例

/**
 * ToolBarFrame.java
 * TECHSCORE Javaユーザインタフェース7章 実習課題3
 *
 * Copyright (c) 2004 Four-Dimensional Data, Inc.
 */

package com.techscore.ui.chapter7.exercise3;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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.JToolBar;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class ToolBarFrame extends JFrame implements ChangeListener, ActionListener {

    private JTabbedPane tabbedPane;
    private JButton labelButton, buttonButton, radioButton;

    public ToolBarFrame() {
        super("ToolBarFrame");
        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);

        JToolBar toolBar = new JToolBar();
        getContentPane().add(toolBar, BorderLayout.NORTH);
        labelButton = new JButton("label");
        buttonButton = new JButton("button");
        radioButton = new JButton("radio");
        labelButton.addActionListener(this);
        buttonButton.addActionListener(this);
        radioButton.addActionListener(this);
        toolBar.add(labelButton);
        toolBar.add(buttonButton);
        toolBar.add(radioButton);

        pack();

    }

    public void stateChanged(ChangeEvent event) {
        setTitle(tabbedPane.getTitleAt(tabbedPane.getSelectedIndex()));
    }

    public void actionPerformed(ActionEvent event) {
        if (event.getSource().equals(labelButton)) {
            tabbedPane.setSelectedIndex(tabbedPane.indexOfTab("label"));
        } else if (event.getSource().equals(buttonButton)) {
            tabbedPane.setSelectedIndex(tabbedPane.indexOfTab("button"));
        } else if (event.getSource().equals(radioButton)) {
            tabbedPane.setSelectedIndex(tabbedPane.indexOfTab("radio"));
        }
    }

    public static void main(String args[]) {
        new ToolBarFrame().setVisible(true);
    }

}

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp