目次へ

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

}

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp