目次へ

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

}

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp