Bonsoir à tous, j'aimerais avoir une réponse à un problème de conception récurent. Voilà.
On suppose une application avec une frame principale et des composants. Lorsque je clique sur un bouton une classe qui dérive de Thread est exécutée pour un long traitement.
Qu'elle est la meilleure (bonne) méthode pour accéder, à partir de cette classe, aux éléments de la frame ?
Est-ce en rendant les éléments de la frame static, en créant aussi des méthodes statiques qui modifient les propriétés de ces éléments, afin d'y accéder par d'autres classes ?
Ex : une classe qui exécute un long travail, et l'on veut voir la progression sur une barre de la frame principale. J'ai utilisé cette méthode et cela fonctionne mais est-ce propre ?
J'ai constaté une limite à cette méthode : je veux changer le chemin de la propriété icon d'un JLabel de la frame principale à partir de la classe qui exécute le long très traitement.
Dans ma frame, si je mets mon JLabel en static, crée une méthode statique pour modifier le chemin de l'icone,
j'ai un message d'eclipse qui dit pour getClass() :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public static void setPathImage(String path) { jLabel.setIcon(new ImageIcon(getClass().getResource(path))); }
Cannot make a static reference to the non-static method getClass() from the type Object
Si je ne mets pas la méthode static, je n'y accède pas par l'autre classe.
Quelle est la méthode que je dois utiliser pour que cela fonctionne et que ce soit propre ?
J'espère avoir réussi à exposer clairement mon problème.
Merci par avance
Raphael![]()
Partager