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