2013-03-22 2 views
8

Я искал поисковые запросы для восстановления данных из компонента JList, но не нашел их. Так, есть ли метод Jlist, который возвращает его элементы? Я не хочу только выбранного. Я хочу весь список.Получение данных от JList

Причина в том, что у меня есть этот метод, который обновляет все компоненты базы диалогового окна по выбранному значению окна списка. Я хочу обновить этот список из того же метода. Поэтому для этого метод не должен обновлять список при каждом вызове. Он должен сравнить значения в поле списка с самыми последними данными, которые я храню в одном классе (в противном случае он переходит в бесконечный цикл). Только когда данные в списке не совпадают с данными в классе, он обновляется.

Есть ли такой способ для извлечения всех данных из списка?

ответ

9

Чтобы получить данные модели, вы должны использовать метод getModel(), а затем использовать методы внутри ListModel, чтобы получить все элементы данных.

ListModel model = list.getModel(); 

for(int i=0; i < model.getSize(); i++){ 
    Object o = model.getElementAt(i); 
} 

http://docs.oracle.com/javase/6/docs/api/javax/swing/JList.html#getModel()

http://docs.oracle.com/javase/6/docs/api/javax/swing/ListModel.html

+0

Спасибо, это то, что Im ищет! – Andrew

3

Чтобы получить выбор, вам нужно будет использовать комбинацию getModel и getSelectedIndices

ListModel model = jListInstance.getModel(); 

for(int index : jListInstance.getSelectedIndices()) { 
    System.out.println(model.getElementAt(index)); 
} 
+2

OP хочет получить все данные, а не только выбранные элементы. – Varun

1

Используйте getModel() метод для получения модель данных, содержащаяся в JLis т. Модель Список может быть пройден следующим образом:

ListModel list = jListObj.getModel(); 
for(int i = 0; i < list.getSize(); i++){ 
    Object obj = list.getElemenetAt(i); 
} 

http://docs.oracle.com/javase/6/docs/api/javax/swing/ListModel.html http://docs.oracle.com/javase/6/docs/api/javax/swing/JList.html#getModel%28%29

Смежные вопросы