JPopupMenu_1

package com.han;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;

public class JPopupMenu_1 extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 2924353502687938030L;

	public JPopupMenu_1() {
		// TODO Auto-generated constructor stub
		final JPopupMenu popupMenu = new JPopupMenu();
		JMenuItem menuItem1 = new JMenuItem("剪切");
		JMenuItem menuItem2 = new JMenuItem("复制");
		JMenuItem menuItem3 = new JMenuItem("粘贴");
		JMenu menuSub = new JMenu ("编辑");
		JMenuItem menuSubItem1 = new JMenuItem("只读");
		JMenuItem menuSubItem2 = new JMenuItem("可写");
		JMenu menuSubSub = new JMenu("字体");
		menuSub.add(menuSubItem1);
		menuSub.add(menuSubItem2);
		menuSub.add(menuSubSub);
		JMenuItem menuSubSubItem1 = new JMenuItem("加粗");
		JMenuItem menuSubSubItem2 = new JMenuItem("倾斜");
		menuSubSub.add(menuSubSubItem1);
		menuSubSub.add(menuSubSubItem2);
		
		popupMenu.add(menuItem1);
		popupMenu.add(menuItem2);
		popupMenu.add(menuItem3);
		popupMenu.add(menuSub);
		
		JLabel label = new JLabel("请在这里单击鼠标右键!");
		
		Container container = getContentPane();
		container.add(label, BorderLayout.CENTER);
		
		// MouseAdapter (abstract class) is different from 
		// the MouseListener (interface). The interest of the abstract class
		// is that we need not to override all the methods declared in 
		// the corresponding interface.
		container.addMouseListener(new MouseAdapter() { 
			public void mouseReleased(MouseEvent e) {
				if (e.isPopupTrigger()) {
					popupMenu.show(e.getComponent(), e.getX(), e.getY());	
				}
			}			
		});
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		JPopupMenu_1 frame = new JPopupMenu_1();
		frame.setTitle("创建弹出式菜单");
		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setBounds(100, 100, 400, 300);
	}

}


posted on 2012-05-28 01:30  java课程设计例子  阅读(164)  评论(0编辑  收藏  举报