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

