2013-04-13 48 views
0

我有一個包含兩個面板的Jframe。 在一個名爲「panelA」的面板中,用戶通過從JCombobox中選擇一個項目來選擇一個類別,然後點擊「更新按鈕」。然後我有另一個名爲「panelB」的面板,其中包含一個Jlist,並在「panelA」中顯示該選定類別中的現有項目列表。Jlist使用動作監聽器更新內容

我有一個模型類,使用觀察者模式來執行應用程序的邏輯部分。點擊模型類的按鈕後,我使用panelA中的動作偵聽器發送更改,模型類完成工作並準備包含過濾數據的列表。然後我需要了解如何在panelB上的Jlist內容上顯示過濾數據。

現在我的問題是我不知道Jlist類的哪個方法更新Jlist的內容。或者最好是說我不知道​​Jlist類中的哪個方法會改變Jlist中的數據列表。 我只需要一點線索。 對不起,如果我的問題不專業,我在Java和編程非常新。 感謝

回答

1

如果你想有一個可變大小JList,你應該JList(ListModel)初始化,使用列表模式,允許增加新的元素列表(如DefaultListModel)。

然後你就可以添加新的元素是這樣的:

DefaultListModel model = (DefaultListModel)list.getModel(); 
model.addElement(element); 

使用泛型,如果你使用的是Java 7:

DefaultListModel<MyClass> model = (DefaultListModel<MyClass>)list.getModel(); 
model.addElement(element); 

哪裏MyClass是列表中的元素class