2014-12-24 38 views
-5

我有2個或更多的組合框,我想從(ActionListener)中使用這些組合框,但我不知道如何從組合框的名稱中使用(actionPerformed )在java中使用組合框的名稱執行操作

comboBox1= new JComboBox(items);  
comboBox1.addActionListener(this);  
comboBox1.setName("com");  
comboBox2= new JComboBox(items);  
comboBox2.addActionListener(this);  
comboBox2.setName("com");  

@Override  
public void actionPerformed(ActionEvent e) {  
} 

,但我不知道我可以從這些組合框在這種(使用的actionPerformed),因爲我有2個組合框,我不能從其中一人使用。
感謝

+1

是什麼[動作事件](http://docs.oracle.com/javase/7/docs/api/java/awt/event/ActionEvent.html)(提供給聽者回調)查看How to Use Actions包含? – user2864740

+0

你好,歡迎來到StackOverflow!您能向我們展示一些您正在討論的問題的代碼/圖片,以便我們能夠進一步幫助您解決問題嗎? –

回答

1
  • 使用JComboBox#setActionCommand,引發
  • 時將設置ActionEventactionCommand性能比較ActionEventsource財產免遭
  • 使用單一ActionListener每個組合框的組合框實例
  • 改爲使用Action API。有關詳細信息,
+0

xxxClientProperty應該是標準的方式,當然沒有Swing Action,那麼一切都可以更容易,我會爲JComboBox使用ItemListener(如果事件通知另一個不同的對象) – mKorbel

+0

'xxxClientProperty'對我來說總是顯得有點髒(但這就是隻有我)。在這種情況下'setActionCommand'是最好的解決方案,但我更喜歡使用專用的'ActionListener'或'Action'。在這些情況下,並沒有真正發現使用'ItemListener',個人更喜歡'ActionListener',但這需要滿足需求 – MadProgrammer

相關問題