2012-12-16 28 views
1

我有一個HashMap的,看起來像這樣:結合2個JComboBoxes

HashMap<CauseCategory, ArrayList<Cause>> data; 

CauseCategory和原因只是個教學班,在其中一個字符串實例字段,通過它們的構造函數或setter方法(如果需要)設置。現在,系統從數據庫中提取一系列原因類別,並且對於每個原因類別,都有一些與其相關的原因。

說我們有一個原因類別「技術」,那就有與之相關的多個原因,如「包裝問題」,「處理錯誤」,「誤判錯誤」,等等。

我養活我的GUI類此HashMap,它有兩個JComboBoxes(原因分類+原因說明)。

我如何可以將綁定在第一個組合框(類別),這樣,當我選擇從列表中的一個項目,那隻能說明它在第二個組合框(原因說明)相關聯的原因是什麼?

編輯:可能simplier這樣想HashMap中的:

HashMap<String, ArrayList<String>> data; 

回答

3

添加一個ActionListener第一個組合框。每次選擇更改時,ActionEvent將被觸發,ActionListener將因此被調用。從監聽器中,從組合框中獲取新選擇的類別,然後從Map中獲取關聯原因,並更改第二個組合框中顯示的項目。

像往常一樣:link to the swing tutorial

+0

上帝啊,爲什麼我沒有想到這一點。非常感謝你。 – Volatile

+1

有一個相關示例[此處](http://stackoverflow.com/a/3191882/230513)。 – trashgod