如何在netbeans可视化编辑器中添加JFrame中的弹出菜单

Ahm*_*ani 2 java user-interface swing netbeans jpopupmenu

我已经尝试在Netbeans可视化编辑器中通过设计将PopUp菜单添加到JFrame,但它不起作用.任何人都可以一步一步提示我如何添加它?十分感谢!

Pau*_*tha 7

问题是a JPopupMenu不是最初可见或添加到容器的组件.因此,只需将其拖放到设计视图框架中,就不会对设计视图产生任何影响.

但是,如果查看源代码或导航器,您看到jPopupMenu声明为类成员并在initComponents()方法中实例化.

我自己尝试过不同的东西,从我尝试过的东西来看,你看起来不像是可以用视觉方式设计弹出菜单.但是,您可以使用导航器进行设计.

在此输入图像描述

  1. 从导航器中,您将看到jPopupMenu1.您可以添加JMenusJMenuItems右键单击并选择Add from Palette.
  2. 然后,您可以JMenuItem通过右键单击JMenuItem导航器并选择添加侦听器Events -> Actions -> actionPerformed

要进行JPopupMenu显示,您需要向MouseListener组件添加a ,无论是框架还是其他组件.例如(到框架):

  1. 从导航器选择框,然后右键单击它并选择Events -> Mouse ->,你将必须实现mousePressed mouseReleased,因为不同的平台有不同的弹出式触发器时,Windows是mouseReleased我认为Mac是mousePressed(不要引用我).
  2. 创建一个显示弹出菜单的方法.

    private void showPopupMenu(MouseEvent e) {
       jPopupMenu1.show(this, e.getX(), e.getY());
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 实现你mousePressedmouseReleased方法

    private void formMousePressed(MouseEvent evt) {                                  
        if (evt.isPopupTrigger()) {
            showPopupMenu(evt);
        }
    }                                 
    
    private void formMouseReleased(MouseEvent evt) {                                   
        if (evt.isPopupTrigger()) {
            showPopupMenu(evt);
        }
    } 
    
    Run Code Online (Sandbox Code Playgroud)

在此输入图像描述