popupmenutest.java

来自「java编程开发技巧与实例的编译测试通过的所有例程」· Java 代码 · 共 80 行

JAVA
80
字号
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

public class PopupMenuTest extends JFrame implements ActionListener
{
	private JPopupMenu file		=	new JPopupMenu();
	private JMenuItem fileOpen	=	new JMenuItem("Open");
	private JMenuItem fileSave	=	new JMenuItem("Save");
	private JMenuItem fileExit	=	new JMenuItem("Exit");
	
	private JPopupMenu options	=	new JPopupMenu();
	private JMenuItem optionsSpell	=	new JMenuItem("Spell Check");
	private JMenuItem optionsSecret	=	new JMenuItem("Show Codes");
	
	private class FilePopupListener extends MouseAdapter
	{
		private JComponent owner;
		public FilePopupListener(JComponent _owner)
		{
			owner	=	_owner;
		}
		public void mousePressed(MouseEvent me)
		{
			if (SwingUtilities.isRightMouseButton(me))
				PopupMenuTest.this.file.show(owner, me.getX(), me.getY());
		}
	}
	private class OptionsPopupListener extends MouseAdapter
	{
		private JComponent owner;
		public OptionsPopupListener(JComponent _owner)
		{
			owner	=	_owner;
		}
		public void mousePressed(MouseEvent me)
		{
			if (SwingUtilities.isRightMouseButton(me))
				PopupMenuTest.this.options.show(owner, me.getX(), me.getY());
		}
	}
	public PopupMenuTest()
	{
		super("Popup Menu Test");
		JPanel top	=	new JPanel(new FlowLayout());
		top.add(new JLabel("This is one particular panel"));
		top.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
		JPanel bottom	=	new JPanel(new FlowLayout());
		bottom.add(new JLabel("This is another panel"));
		bottom.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
		file.add(fileOpen);
		file.add(fileSave);
		file.add(new JPopupMenu.Separator());
		file.add(fileExit);
		fileExit.addActionListener(this);
		options.add(optionsSpell);
		options.add(optionsSecret);
		top.addMouseListener(new FilePopupListener(top));
		bottom.addMouseListener(new OptionsPopupListener(bottom));
		getContentPane().setLayout(new GridLayout(2, 1));
		getContentPane().add(top);
		getContentPane().add(bottom);
		validate();
		pack();
		setSize(700, 300);
		setLocationRelativeTo(null);
		setVisible(true);
	}
	public void actionPerformed(ActionEvent ae)
	{
		System.exit(0);
	}
	public static void main(String args[])
	{
		PopupMenuTest pmt	=	new PopupMenuTest();
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?