2011-05-04 35 views
1

我已經使用具有值列表的NetBeans實現了一個ComboBox,我希望能夠在所選索引發生更改時執行操作。一個例子,當用戶從項目1改變當前項項2.在JComboBox上執行操作 - SwingUI

+1

所有您需要做的是閱讀JComboBox API,您將在「如何使用組合框」中找到指向Swing教程的鏈接。該API是第一個開始的地方。 – camickr 2011-05-04 16:51:14

+0

猜我的搜索foo已關閉,謝謝指針! – 2011-05-04 16:52:25

回答

3

這裏是真實的使用例從The Java Tutorials

public class ComboBoxDemo ... implements ActionListener { 
    . . . 
     petList.addActionListener(this) { 
    . . . 
    public void actionPerformed(ActionEvent e) { 
     JComboBox cb = (JComboBox)e.getSource(); 
     String petName = (String)cb.getSelectedItem(); 
     updateLabel(petName); 
    } 
    . . . 
} 

編輯:

一個ActionListener

用於接收 動作事件的監聽器接口。對處理動作 事件感興趣的類 實現此接口,並且使用 組件的addActionListener方法,使用該類創建的對象是 ,它使用 註冊。 當動作事件發生時, 對象的actionPerformed方法是 被調用。

編輯2:

這裏的另一個使用例子,以滿足克列奧帕特拉,那就是,一個是比較典型的最佳實踐:

JComboBox yourComboBox = new JComboBox(); 
yourComboBox.addActionListener(new ActionListener() { 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     // do stuff 
    } 
}); 
+0

你介意說明ActionListener的工作原理嗎?它是通過與ComboBox的任何交互觸發還是可以使用傳遞給actionPerformed方法的參數?詳細說明我已經測試並注意到它在我選擇一個新項目時起作用,如果我想讓它在不同的事件中發射,這可以擴展嗎?道歉,我習慣了C#的事件處理。 – 2011-05-04 16:49:55

+2

閱讀教程。答案在3分鐘前發佈。在請求更多信息之前,您無法閱讀教程,下載示例並進行測試。 – camickr 2011-05-04 16:52:44

+0

@Jamie:好的,只需註冊另一個[EventListener](http://download.oracle.com/javase/6/docs/api/java/util/EventListener.html) – mre 2011-05-04 16:53:53