2014-06-13 19 views
1
comboBox.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent event) { 
       JComboBox comboBox = (JComboBox) event.getSource(); 
       Object selected = comboBox.getSelectedItem(); 
       switch(selected.toString()){ 
         //some actions based on String picked 
        default: 
        break; 
       } 
      } 
     }); 

我不知道哪個參數必須有.removeActionListener()方法來刪除動作監聽器和更改組合框的內容。刪除動作偵聽器窗體組合框,但無法找到參數

+0

當你想刪除'ActionListener'聽衆? – MadProgrammer

回答

1

的問題是,你創建一個內聯匿名內部類,這意味着你沒有外部參考吧......

您可以創建ActionListener,但首先將其分配給變量

一個實例
private ActionListener actionListener; 
//... 
actionListener = new ActionListener() {...}; 
comboBox.addActionListener(actionListener); 

然後,你可以在以後使用中刪除它...

comboBox.removeActionListener(actionListener); 
0

你必須存儲在一個變量的ActionListener:

ActionListener al = new ActionListener() { 
      public void actionPerformed(ActionEvent event) { 
       JComboBox comboBox = (JComboBox) event.getSource(); 
       Object selected = comboBox.getSelectedItem(); 
       switch(selected.toString()){ 
         //some actions based on String picked 
        default: 
        break; 
       } 
      } 
     } 

,並使用comboBox.removeActionListener(al)刪除的ActionListener和ofcurse必須使用人的補充