Bonjour, voilà je suis en train de me mettre au langage objet après quelque années de dev WEB en PHP. J'ai fait un ptit projet avec trois classes : la classe de démarrage (Main), une classe Form (MyFrame extends JFrame) et une classe de capture d'action (MyButton extends AbstractAction).
J'ai créé un bouton sur ma Form avec en passage de paramètre un instance de l'objet de capture :
Dans l'objet Form :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
jButton1 = new javax.swing.JButton(new MyButton(this,prog,"Valider"));
Dans l'objet action :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
public MyButton(MyFrame fenetre,Main prog,String texte){
            super(texte);
            this.prog=prog;
            this.fenetre=fenetre;
        }
Et j'aimerais donc que lorsque l'on clic sur le bouton, ça exécute une fonction située dans ma classe de démarrage :
Dans l'objet action :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
public void actionPerformed(ActionEvent e) { 
            prog.calcul(fenetre);
	}
J'espérais donc passer l'objet de démarrage à l'objet form et que celui repasse cette référence ainsi que la sienne a l'objet action, mais l'objet de démarrage étant static, il ne peut pas se passer en paramètre lors de l'instanciation de l'objet form (
Code : Sélectionner tout - Visualiser dans une fenêtre à part
MyFrame fenetre = new MyFrame(this);
).
J'aurais donc aimé savoir s'il existait un moyen dans ma classe MyForm de récupérer l'objet qui l'à appelé (Main) un peu du genre MyForm.opener.
J'ai privilégié le partage des traitements comme le préconise certain ( interface graphique, traitements, gestion des evenements), mais je suis encore gauche quant à l'illustration de ce modèle, donc hésitez pas à m'aiguiller sur une/des méthode de travail en environnement Objet/GDI.
En espérant avoir était assez clair, merci !