解答例 - 実習課題2 - 8.基本的なコンポ−ネント2
(実習課題2)
以下のサンプルプログラムを実装しなさい。
- ウィンドウに含まれるコンポーネントはパネル(JPanel)のみ。
- パネル上でクリックしたら、ポップアップメニューが表示されるようにする。
- クリックした場所にポップアップメニューを表示する事。
- ポップアップメニューの構成については任意。
- イベント処理は「MouseListener」インタフェースを実装したクラスで行う事。
解答例
/** * MouseListenerFrame.java * TECHSCORE Javaユーザインタフェース8章 実習課題2 * * Copyright (c) 2004 Four-Dimensional Data, Inc. */ package com.techscore.ui.chapter8.exercise2; import java.awt.Dimension; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JFrame; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JPopupMenu; public class MouseListenerPopup extends JFrame { private JPopupMenu popup; public MouseListenerPopup() { super("MouseListenerPopup"); setDefaultCloseOperation(EXIT_ON_CLOSE); popup = new JPopupMenu(); popup.add(new JMenuItem("menu item 1")); popup.add(new JMenuItem("menu item 2")); JPanel panel = new JPanel(); panel.setPreferredSize(new Dimension(150, 150)); getContentPane().add(panel); MouseListener popupListener = new PopupListener(); panel.addMouseListener(popupListener); pack(); } public static void main(String args[]) { new MouseListenerPopup().setVisible(true); } class PopupListener implements MouseListener { public void mousePressed(MouseEvent e) { popup.show(e.getComponent(), e.getX(), e.getY()); } public void mouseClicked(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} } }