Il mio obiettivo finale è avere una JList che aggiorni il suo contenuto in fase di esecuzione e ho trovato una soluzione che funziona da questo post here on SO, tuttavia sono curioso del perché la mia idea originale no.Utilizzo del metodo JList .setModel() con una classe come argomento
A partire da ora, ho qualcosa di simile impostazione e funziona:
DefaultListModel default = new DefaultListModel();
for(int i = 0; i < array.size() ; ++i){
test.addElement(array.get(i));
}
list.setModel(default);
Qui di seguito è stato il mio piano originale. Volevo avere una classe che implementasse ListModel come argomento, sperando che aggiornasse JList.
SomeClass test = new SomeClass(); //Implements ListModel
list.setModel(test);
o
SomeClass test = new SomeClass(); //Implements ListModel
list = new JList(test);
Nessuno di questi lavori, che mi confonde. Questi ultimi due metodi potrebbero funzionare come, il codice è molto più pulito.
Grazie.
Passare una classe ListModel invece di un'istanza di questa classe è un errore del compilatore. Perché stai confondendo? – Istao
Penso che la mia demo del codice sia un po 'ingannevole. Questo è quello che stavo facendo, cambierò il codice per renderlo più chiaro. – Koop
Perché questi ultimi due metodi non funzionano? Si prega di fornire l'errore che stai vedendo. Se 'SomeClass' estende' ListModel', allora entrambi i metodi funzioneranno. –