[JAVA] Y'as un truc que je maitrise pas... - Comment faire interagir des classes ?

Bonjour tout le monde :slight_smile: ,

Ca fait un petit moment que j’essayes de créer des petites applications en Java et y’as toujours quelque chose que j’arrive pas à bien comprendre et donc à maitriser : comment une classeB peut agir de façon simple sur une classeA ?

Là en l’occurence, je sais pas comment une de mes classes qui genere un minuteur peut mettre à jour un JLabel de la GUI de mon programme.

J’ai essayé de faire un truc du genre :
monPackage.GUI.monJLabel.setText(leTexte); => non static variable Temps cannot be referenced from a static context…

Comment faire ? Créer un nouvel objet GUI dans mon minuteur ? Ca ne va pas aller, si ?

J’espere que vous comprenez bien ce que je veux dire, c’est pas évident, en gros c’est comment une classe peut lancer une méthode ou changer une variable d’une autre sans en créer une nouvelle instance (à moins que ce ne soit nécessaire…) ?

Pardonnez mon faible niveau, mais je me permet de vous demander car je vois bien que cela me bloque, mais surtout démontre bien que j’ai pas bien saisi le concept de programmation OO…

Je vous remercie d’avance de toute aide,
PoiZon :hello:

Bonjour. :hello:
Je reviens juste de vacances pour répondre, s’il est encore temps!
C’est un problème de concep Objet, en effet: Ce sont des instances de classes qui interragissent. Pour mettre à jour ton JLabel, il te faut l’instance du JLabel.
Il faut donc passer à ton minuteur l’instance du JLabel: soit dans le constructeur, soit dans un setter:
dans le style

minuteur.setJLabel(tonlabel)
// à la création du JLabel

et dans la classe du minuteur, tu stocke l’instance du JLabel en attribut d’instance, et c’est cet attribut que tu l’utilise.

Sinon, tu peux aussi avoir un autre point d’entrée, c’est à dire un autre objet qui connaît l’instance du JLabel, toujours pour avoir l’instance que tu veux modifier, pas uniquement sa classe.

voila :neutre:

exemple:

et

en fait t’as la réponse dans ton message d’erreur: la méthode doit etre statique