2014-01-09 81 views
1

我在Netbeans中创建了一个弹出式菜单,并且我想要制作一个菜单项,当我按下它时将它发送给另一个GUI,但我不知道如何。Netbeans JPopupMenu问题

我不得不做一些像餐馆菜单,当有人按下菜单中的按钮,将它们发送到特定类型的食物。

我只在右击它时弹出。

private void formMousePressed(java.awt.event.MouseEvent evt) { 
    if(evt.isPopupTrigger()){ 
     jPopupMenu1.show(evt.getComponent(),evt.getX(),evt.getY()); 
    } 
}         

private void formMouseReleased(java.awt.event.MouseEvent evt) {         
    if(evt.isPopupTrigger()){ 
     jPopupMenu1.show(evt.getComponent(),evt.getX(),evt.getY()); 
    } 
} 
+0

1)为了更好地提供帮助,请发布[MCVE](http://stackoverflow.com/help/mcve)。 2)'Java'是'JavaScript','Car'是'Carpet'。 –

回答

1

“我想要发送我当我按它的另一个GUI的菜单项,但我不知道怎么办。”

我不知道如何使用GUI Builder为JPopupMenu进行拖放操作。我试图拖放它,但它不会显示显示,所以我不能将JMenuItem拖放到它。所以我必须手工编码。

  • 我把JPopupMenu拖到框架上(jPopupmenu1);
  • 在构造函数中,我添加了一个JMenuItem它。
  • 我添加了一个ActionListenerJMenuItem
  • 只需出示实例第二GUI,也许处置的第二,根据自己的喜好

public NewJFrame() { 
    initComponents(); 
    JMenuItem item1 = new JMenuItem("Open GUI2"); 
    jPopupMenu1.add(item1); 
    item1.addActionListener(new ActionListener(){ 
     public void actionPerformed(ActionEvent e) { 
      new GUI2(); 
     } 
    }); 
} 

.... 

private void formMousePressed(java.awt.event.MouseEvent evt) {         
     if (evt.isPopupTrigger()) { 
      jPopupMenu1.show(evt.getComponent(), evt.getX(), evt.getY()); 
     } 
    }         

private void formMouseReleased(java.awt.event.MouseEvent evt) {         
     if (evt.isPopupTrigger()) { 
      jPopupMenu1.show(evt.getComponent(), evt.getX(), evt.getY()); 
     } 
    } 

它工作正常的我

enter image description here

+0

根据我的经验,使用GUI Builder构建'JPopupMenu'几乎没有什么可做的。但说实话,GUI Builder只能用于静态组件,其位置不需要改变。任何时候你需要“可移动”组件,你都需要手动编码。 – ryvantage

+0

@优点我更喜欢手工编码自己。我刚开始学习GUI Builder,但似乎有限制。 _而且代码根本看起来不漂亮。 –

+0

我从Netbeans的GUI Builder开始,是的,有很多限制,但我更喜欢它们。我基本上使用GUI Builder进行定位,而没有其他任何东西(即,如果我有'JTable',我只需拖放它,定位它,然后创建一个单独的方法来加载数据)。能够可视化我的组件对我而言至关重要。 – ryvantage