2013-05-07 170 views
1

我是Java GUI的初學者,並且在設計彈出菜單時遇到問題。我有一個JPanel,並希望只有兩個選擇的彈出式菜單。這裏是我的代碼:Java GUI彈出式菜單

 ActionListener ordermethod = new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. 
      } 
     }; 

     JPopupMenu popup = new JPopupMenu(); 

     JMenuItem arr = new JMenuItem("first"); 
     arr.addActionListener(ordermethod); 
     popup.add(arr); 
     arr = new JMenuItem("second"); 
     arr.addActionListener(ordermethod); 
     popup.add(arr); 
     myPanel.add(new JLabel("Pattern ordering method:"), gbc); 
     myPanel.add(arr, gbc); 

但問題是,當我運行的代碼,我們看到了一個JLabel和和框,顯示「第二」,當我點擊「第二」,找到「第一」 ,得到一長串的錯誤。 (這是一些錯誤的部分)

Exception in thread "AWT-EventQueue-0" java.lang.UnsupportedOperationException: Not supported yet. 
at main.Main$1.actionPerformed(Main.java:53) 
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) 
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) 
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 

希望問題是清楚的,你可以幫助我。謝謝。

回答

3

嘗試從您actionPerformed方法去除線throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. ......與您所需的應用程序邏輯取代它

ActionListener ordermethod = new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     JOptionPane.showMessageDialog(null, "Hello"); 
    } 
}; 

JPopupMenu popup = new JPopupMenu(); 

JMenuItem arr = new JMenuItem("first"); 
arr.addActionListener(ordermethod); 
popup.add(arr); 
arr = new JMenuItem("second"); 
arr.addActionListener(ordermethod); 
popup.add(arr); 
myPanel.add(new JLabel("Pattern ordering method:"), gbc); 
myPanel.add(arr, gbc); 
+0

感謝您的建議。我做了,只要我點擊「第二」,我就看到「你好」的消息。 – 2356471 2013-05-07 00:38:39

+1

因此,現在您需要用您的應用程序邏輯替換'JOptionPane.showMessageDialog(null,「Hello」);',它可能會是什麼...... – MadProgrammer 2013-05-07 00:43:03