解答例 - 実習課題1 - 8.基本的なコンポ−ネント2
(実習課題1)
以下のプログラムを作成しなさい。
- ウィンドウに含まれるコンポーネントはボタン1つ。テキスト等は任意。
- ボタンが押されるとポップアップメニューが表示される。
- ポップアップメニューに含まれるメニューは2つ以上。テキスト等は任意。
- メニューが選択されるとボタンのテキストが変わるようにする事。
解答例
/**
* PopupMenuFrame.java
* TECHSCORE Javaユーザインタフェース8章 実習課題1
*
* Copyright (c) 2004 Four-Dimensional Data, Inc.
*/
package com.techscore.ui.chapter8.exercise1;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
public class PopupMenuFrame extends JFrame implements ActionListener {
private JButton button;
private JPopupMenu popup;
private JMenuItem menuItem1, menuItem2;
public PopupMenuFrame() {
super("PopupMenuFrame");
setDefaultCloseOperation(EXIT_ON_CLOSE);
popup = new JPopupMenu();
menuItem1 = new JMenuItem("menu item 1");
menuItem1.addActionListener(this);
popup.add(menuItem1);
menuItem2 = new JMenuItem("menu item 2");
menuItem2.addActionListener(this);
popup.add(menuItem2);
button = new JButton("menu item 1");
getContentPane().add(button);
button.addActionListener(this);
pack();
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button) {
popup.show(button, 0, 0);
} else if (e.getSource() instanceof JMenuItem) {
button.setText(((JMenuItem) e.getSource()).getText());
}
}
public static void main(String args[]) {
new PopupMenuFrame().setVisible(true);
}
}

