⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 popupmenuframe.java

📁 Eclipse程序设计经典教程+源代码 学习java的朋友可以看看
💻 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 + -