解答例 - 実習課題3 - 8.基本的なコンポ−ネント2
(実習課題3)
実習課題2のプログラムを改良しなさい。
- イベント処理を「MouseAdapter」クラスを拡張したクラスで行うように変更する。
- ウィンドウを表示するクラスとイベント処理を行うクラスの2つで構成する事。
解答例
/** * MouseAdapterPopup.java * TECHSCORE Javaユーザインタフェース8章 実習課題3 * * Copyright (c) 2004 Four-Dimensional Data, Inc. */ package com.techscore.ui.chapter8.exercise3; import java.awt.Dimension; import java.awt.event.MouseAdapter; 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 MouseAdapterPopup extends JFrame { private JPopupMenu popup; public MouseAdapterPopup() { super("MouseAdapterPopup"); 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 MouseAdapterPopup().setVisible(true); } class PopupListener extends MouseAdapter { public void mousePressed(MouseEvent e) { popup.show(e.getComponent(), e.getX(), e.getY()); } } }