2013-03-22 25 views
8

Stavo cercando su google una soluzione per recuperare i dati da un componente JList, ma non ne ho trovati. Quindi, esiste un metodo di Jlist che restituisce i suoi elementi? Non voglio solo uno selezionato. Voglio l'intera lista.Recupero dei dati da JList

Il motivo è che ho questo metodo che aggiorna tutti i componenti di una finestra di dialogo base sul valore selezionato di una casella di riepilogo. Voglio aggiornare quella casella di riepilogo con lo stesso metodo. Quindi, per fare ciò, il metodo non dovrebbe aggiornare la casella di riepilogo ogni volta che viene chiamato. Dovrebbe confrontare i valori nella casella di riepilogo con i dati più recenti che ho archiviato in una classe. (Passa al ciclo infinito altrimenti) Solo quando i dati nella casella di riepilogo non corrispondono ai dati nella classe, vengono aggiornati.

Esiste un metodo per recuperare tutti i dati della casella di riepilogo?

risposta

9

È necessario utilizzare il metodo getModel() per ottenere i dati del modello e quindi utilizzare i metodi all'interno di ListModel per ottenere tutti gli elementi di dati.

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

Grazie, questo è quello che sto cercando! – Andrew

3

Per ottenere le selezioni, è necessario utilizzare una combinazione di getModel e getSelectedIndices

ListModel model = jListInstance.getModel(); 

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

OP vuole ottenere tutti i dati e non solo gli elementi selezionati. – Varun

Problemi correlati