📄 popupmenuframe.java
字号:
package component;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class PopupMenuFrame extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
//创建弹出式菜单
JPopupMenu jPopupMenu1 = new JPopupMenu();
//创建菜单项
JMenuItem jMenuItem1 = new JMenuItem();
JMenuItem jMenuItem2 = new JMenuItem();
JCheckBoxMenuItem jMenuItem3 = new JCheckBoxMenuItem();
JCheckBoxMenuItem jMenuItem4 = new JCheckBoxMenuItem();
JCheckBoxMenuItem jMenuItem5 = new JCheckBoxMenuItem();
public PopupMenuFrame() {
try {
//窗口关闭时清空内存
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
PopupMenuFrame frame = new PopupMenuFrame();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
//居中对齐
frame.setLocation((screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
}
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(400, 300));
this.setTitle("弹出式菜单示例");
jMenuItem1.setText("菜单项1");
jMenuItem2.setText("菜单项2");
jMenuItem3.setText("复选菜单项1");
jMenuItem4.setText("复选菜单项2");
jMenuItem5.setText("复选菜单项3");
//为内容面板加入弹出式菜单
contentPane.addMouseListener(new PopupMenuFrame_contentPane_mouseAdapter(this));
//为弹出式菜单加入菜单项
jPopupMenu1.add(jMenuItem1);
jPopupMenu1.add(jMenuItem2);
jPopupMenu1.addSeparator();
jPopupMenu1.add(jMenuItem3);
jPopupMenu1.add(jMenuItem4);
jPopupMenu1.add(jMenuItem5);
}
//鼠标单击事件
void contentPane_mouseClicked(MouseEvent e) {
if(SwingUtilities.isRightMouseButton(e)){
//使用show命令显示菜单,第1个参数是弹出式菜单所在的容器,
//第2个参数是当前鼠标的x坐标,第3个参数是当前鼠标的y坐标
jPopupMenu1.show(e.getComponent(),e.getX(), e.getY());
}
}
}
//继承鼠标接收器的类
class PopupMenuFrame_contentPane_mouseAdapter extends java.awt.event.MouseAdapter {
PopupMenuFrame adaptee;
PopupMenuFrame_contentPane_mouseAdapter(PopupMenuFrame adaptee) {
this.adaptee = adaptee;
}
public void mouseClicked(MouseEvent e) {
adaptee.contentPane_mouseClicked(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -