2014-01-09 122 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