我一直在尋找Java API,但是沒有運氣來解決這個問題。在啓動JList之後,是否有任何方法可以替換或重新加載「數據」字符串?我也一直在尋找和JComboBox一樣的東西。重新分配JList&JComboBox數據
String[] data = {"one", "two", "three", "four"};
JList dataList = new JList(data);
我一直在尋找Java API,但是沒有運氣來解決這個問題。在啓動JList之後,是否有任何方法可以替換或重新加載「數據」字符串?我也一直在尋找和JComboBox一樣的東西。重新分配JList&JComboBox數據
String[] data = {"one", "two", "three", "four"};
JList dataList = new JList(data);
您正在使用JList的實用程序構造函數之一,該函數接受一個數組。該列表由ListModel支持。該實用程序的構造函數中使用以下步驟創建AbstractListModel上的實現:
new AbstractListModel() {
public int getSize() { return listData.length; }
public Object getElementAt(int i) { return listData[i]; }
}
其中listData
將是你data
集。你可以做同樣的事情並將它傳遞給dataList.setModel()
。如果這不僅僅是一個原型,你可能會得到最好的服務,創建你自己的,完整的ListModel實現。請參考JList tutorial from Sun。
JComboBox有點簡單,因爲DefaultComboBoxModel
類有一個構造函數,它將Object
作爲參數。要替換那裏的數據,你可以簡單地打電話:
myComboBox.setModel(new DefaultComboBoxModel(data));
列表數據存儲在ListModel中(可通過get/set Model方法訪問)。你只需要創建一個新的ListModel(嗯,一個ListModel的實現),並使用它的setModel方法將它傳遞給JList。
它怎麼是最初設置一個字符串呢? – 2009-10-19 13:03:49
謝謝akf。這使事情變得更加清晰。我一直在尋找如何更換陣列... – 2009-10-19 13:07:54
謝謝阿剋夫,讓它一切正常! – 2009-10-19 13:57:24