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 + -
显示快捷键?