如何在 Java 中使用子菜单创建 JPopupMenu?


JPopupMenu JComponent 类的子类,它可以在右键点击时出现在屏幕的任意位置。为了创建一个弹出菜单,我们可以使用 JPopupMenu 类。通常,我们可以将 菜单项 添加到 JPopupMenu 中,还可以通过将菜单项先添加到子菜单中,然后将其添加到 JPopupMenu 中,向 JPopupMenu 添加 子菜单 。弹出菜单由鼠标事件触发,因此我们需要注册一个 MouseListener 接口。我们可以重写 mouseReleased() 方法,以便在通过调用 isPopupTrigger() 方法获得适当事件后显示弹出菜单,并通过以鼠标事件坐标作为参数调用其 show() 方法来显示弹出菜单。

示例

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class JPopupMenuwithSubMenuTest extends JFrame {
   private JPopupMenu popup;
   private JMenu subMenu;
   public JPopupMenuwithSubMenuTest() {
      setTitle("JPopupMenuwithSubMenu Test");
      popup = new JPopupMenu();
      subMenu = new JMenu("Course");
      subMenu.add("Java");
      subMenu.add("Python");
      subMenu.add("Scala");
      popup.add(new JMenuItem("First Name"));
      popup.add(new JMenuItem("Last Name"));
      popup.addSeparator();
      popup.add(subMenu);
      addMouseListener(new MouseAdapter() {
         public void mouseReleased(MouseEvent me) {
            showPopup(me);
         }
      }) ;
      setSize(400, 275);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   void showPopup(MouseEvent me) {
      if(me.isPopupTrigger())
         popup.show(me.getComponent(), me.getX(), me.getY());
   }
   public static void main(String args[]) {
      new JPopupMenuwithSubMenuTest();
   }
}

输出

更新于: 10-2 月 -2020

650 次浏览

开启你的职业生涯

完成课程以获得认证

开始学习
广告