PDA

Visualizza la versione completa : [JAVA - Swing] JList


userfra
17-09-2003, 11:39
Ciao a tutti, come faccio a prelevare tutti gli element di una JList?

Ho provato con getSelectedValue().toString() solo che prelevo solo l'ultimo, io invece vorrei prelevarli tutti, come devo fare?

manuel_b
17-09-2003, 12:16
vediamo se ho capito... :master:
tu cerchi di selezionare n elementi da una JList ma ti seleziona solo l'ultimo?

Prova con il metodo
Object[] getSelectedValues();

Se invecie volevi estrarre proprio tutti gli elementi di una JList prova ad utilizzare un DefaultListModel

ed utilizzare il metodo

Object[] toArray();

Spero di aver bene interpretato il tuo probl.

:ciauz:

userfra
17-09-2003, 13:40
Originariamente inviato da manuel_b
vediamo se ho capito... :master:
tu cerchi di selezionare n elementi da una JList ma ti seleziona solo l'ultimo?

Prova con il metodo
Object[] getSelectedValues();

Se invecie volevi estrarre proprio tutti gli elementi di una JList prova ad utilizzare un DefaultListModel

ed utilizzare il metodo

Object[] toArray();

Spero di aver bene interpretato il tuo probl.

:ciauz:

Si io infatti ho utilizzato questo String name= listModel.getElementAt(listFiles.getSelectedIndex( )).toString();

solo che non so gestire il Object[] toArray();
:confused:

manuel_b
17-09-2003, 14:10
Object[] toArray();
ti serviva nel caso in cui tu volessi estrarre TUTTI gli elementi della JList (sia quelli selezionati sia quelli non selezionati) ma mi pare che non sia questo il caso che ti interessa.


Se vuoi selezionare tutti gli elementi selezionati credo basti

Object[] o = listFiles.getSelectedValues();

e poi fai un cast da Object a String degli elementi che ti servono


Ho provato con getSelectedValue().toString() solo che prelevo solo l'ultimo

getSelectedValue() legge solo 1 elemento mentre getSelectedValues() legge tutti gli elementi selezionati e li scrive in un array di Object

:ciauz:

userfra
17-09-2003, 15:20
Originariamente inviato da manuel_b
Object[] toArray();
ti serviva nel caso in cui tu volessi estrarre TUTTI gli elementi della JList (sia quelli selezionati sia quelli non selezionati) ma mi pare che non sia questo il caso che ti interessa.


Se vuoi selezionare tutti gli elementi selezionati credo basti

Object[] o = listFiles.getSelectedValues();

e poi fai un cast da Object a String degli elementi che ti servono



getSelectedValue() legge solo 1 elemento mentre getSelectedValues() legge tutti gli elementi selezionati e li scrive in un array di Object

:ciauz:

premessa
Forse mi sono spiegato male, io voglio prelevare tutti gli elementi sia quelli selezionati che non.

inoltre come si fa il cast degli elementi da Object a String?

grazie per l'aiuto.

Angelo1974
17-09-2003, 15:35
Ciao.. secondo me potresti fare una cosa del tipo:

ListModel modello = miaJlist.getModel();
int dimensione = modello.getSize();
String[] elementi = new String[dimensione];
for ( int i = 0; i < dimensione; i++ ){
elementi[i] =( String )( modello.getElementAt(i) );
}

E' probabile che ci sia un altro metodo... ma non lo conosco... ovviamente se c'è 1 alternativa imparerò 1 altra cosa, il che è sempre buono.... ciao

:ciauz:

manuel_b
17-09-2003, 16:31
Forse mi sono spiegato male, io voglio prelevare tutti gli elementi sia quelli selezionati che non.

Ohhh finalmente ci siamo spiegati ! :p

Come dice Angelo va bene, se però ne hai la possibilità, prova ad utilizzare per esempio la classe

DefaultListModel Vedi documentazione SUN (http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/DefaultListModel.html)

che implementa ListModel e che in più ha il metodo

Object[] toArray() Vedi documentazione SUN (http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/DefaultListModel.html#toArray())

e che ti permettere di scrivere una cosa del genere:

Object o[] = miaListModel.toArray(); // ricava tutti gli oggetti
String elencoNomi[] = (String[])o; // cast


PS: se (per caso) hai implementato una tua listModel fatta ad hoc, puoi provare ad ereditare da DefaultListModel

Spero di essere stato abb. chiaro

Salutoni, Manuel
:ciauz:

Loading