2017-05-06 85 views
1

我創建了一個動作監聽器,監聽,如果有一個departingStop(組合框對象)的Java:添加相同的動作監聽muliple組合框

departingStop.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent arg0) { 
      //Lots of code here 
    } 
}); 

我想也添加任何變化這個動作監聽另一個組合框(finalStop),而不必創建一個單獨的監聽器,如下:

finalStop.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent arg0) { 
      //Lots of code here 
    } 
}); 

如何才能實現這一目標?謝謝

+0

這個動作監聽器是匿名的,你需要的是被設置爲兩個 –

回答

3

可以監聽分配給一個變量...

ActionListener listener = new ActionListener() { 
    public void actionPerformed(ActionEvent arg0) { 
      //Lots of code here 
    } 
}; 

然後多次添加它...

departingStop.addActionListener(listener); 
finalStop.addActionListener(listener); 
+0

謝謝大家做參考!將在8分鐘內接受... –

2

上面評論,要實現一個匿名監聽器您需要設置爲兩者的參考:

ActionListener foo = new ActionListener() { 
    public void actionPerformed(ActionEvent arg0) { 
      //Lots of code here 
    } 
}; 

departingStop.addActionListener(foo); 
finalStop.addActionListener(foo); 
0

如果您的IDE難以設置在GUI組件rbitrary監聽器,把常見的監聽功能集成到一個單獨的方法,並調用該方法從兩個組合框聽衆:

departingStop.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent arg0) { 
      commonGutsOfListener(arg0); 
    } 
}); 

departingStop.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent arg0) { 
      commonGutsOfListener(arg0); 
    } 
}); 

private void commonGutsOfListener(ActionEvent arg0){ 
     //Lots of code here 
}