Mon but ultime est d'avoir un JList qui actualise son contenu lors de l'exécution, et j'ai trouvé une solution qui fonctionne à partir de ce post here on SO, mais je suis curieux de savoir pourquoi mon idée originale n'a pas.Utilisation de la méthode JList .setModel() avec une classe comme argument
A partir de maintenant, j'ai quelque chose comme cette configuration et il fonctionne:
DefaultListModel default = new DefaultListModel();
for(int i = 0; i < array.size() ; ++i){
test.addElement(array.get(i));
}
list.setModel(default);
Ci-dessous était mon plan initial. Je voulais que la classe implémentant ListModel soit passée en argument, en espérant qu'elle rafraîchirait le JList.
SomeClass test = new SomeClass(); //Implements ListModel
list.setModel(test);
ou
SomeClass test = new SomeClass(); //Implements ListModel
list = new JList(test);
Aucune de ces travaux, ce qui me confond. Est-ce que ces deux dernières méthodes pourraient fonctionner, le code est tellement plus propre.
Merci.
Passer une classe ListModel au lieu d'une instance de cette classe est une erreur du compilateur. Pourquoi êtes-vous confus? – Istao
Je pense que ma démo de code est un peu trompeuse désolé. C'est ce que je faisais, je vais changer le code pour le rendre plus clair. – Koop
Pourquoi ces deux dernières méthodes ne fonctionnent-elles pas? S'il vous plaît fournir l'erreur que vous voyez. Si 'SomeClass' étend' ListModel', alors ces deux méthodes fonctionneront. –