Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在netbeans可视化编辑器的JFrame中添加弹出菜单_Java_Swing_User Interface_Netbeans_Jpopupmenu - Fatal编程技术网

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

Java 如何在netbeans可视化编辑器的JFrame中添加弹出菜单,java,swing,user-interface,netbeans,jpopupmenu,Java,Swing,User Interface,Netbeans,Jpopupmenu,我已经尝试在Netbeans可视化编辑器中通过设计将弹出菜单添加到JFrame中,但它不起作用。 谁能一步一步地提示我如何添加它?? 非常感谢 问题在于jpopmpmenu不是最初可见或添加到容器中的组件。因此,只需将其拖放到设计视图框架中,就不会对设计视图产生视觉上的影响 但是,如果查看源代码或导航器,您将看到jpopmpmenu声明为类成员并在initComponents()方法中实例化 我自己也尝试过不同的事情,从我所尝试的来看,你似乎无法以可视化的方式设计弹出式菜单。不过,您可以使用导航

我已经尝试在Netbeans可视化编辑器中通过设计将弹出菜单添加到JFrame中,但它不起作用。 谁能一步一步地提示我如何添加它??
非常感谢

问题在于
jpopmpmenu
不是最初可见或添加到容器中的组件。因此,只需将其拖放到设计视图框架中,就不会对设计视图产生视觉上的影响

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

我自己也尝试过不同的事情,从我所尝试的来看,你似乎无法以可视化的方式设计弹出式菜单。不过,您可以使用导航器进行设计

  • 在导航器中,您将看到
    jpopmpmenu1
    。您可以添加
    JMenus
    JMenuItems
    ,方法是右键单击它并从调色板中选择
    add
  • 然后,您可以通过右键单击导航器中的
    JMenuItem
    并选择
    Events->Actions->actionPerformed
    将侦听器添加到
    JMenuItem
  • 要使
    jpopumenu
    显示,您需要向组件添加
    MouseListener
    ,无论是框架还是其他组件。例如(到框架):

  • 从导航器中选择框架并右键单击它,然后选择
    Events->Mouse->
    ,您将需要实现
    mousePressed
    mousePressed
    ,因为不同的平台有不同的弹出触发器,窗口是
    mousePressed
    ,我认为Mac是
    mousePressed
    (不要引用我的话)
  • 创建一个显示弹出菜单的方法

    private void showPopupMenu(MouseEvent e) {
       jPopupMenu1.show(this, e.getX(), e.getY());
    }
    
  • 实现您的
    mousePressed
    mouseereleased
    方法

    private void formMousePressed(MouseEvent evt) {                                  
        if (evt.isPopupTrigger()) {
            showPopupMenu(evt);
        }
    }                                 
    
    private void formMouseReleased(MouseEvent evt) {                                   
        if (evt.isPopupTrigger()) {
            showPopupMenu(evt);
        }
    } 
    

  • Tnx,谢谢你的回答,但我正在使用mac,并且也实现了我的mousePressed和mousePressed方法,但不起作用:(哦,sry:(我搞错了。没关系。mac弹出触发器也是“mousePressed()”)