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

