-
listener et pattern MVC
Bonjour,
Pour mon projet en JAVA je dois utiliser le pattern MVC, donc découpages en 3 packages model, view, controller.
Mais j'ai un peu de mal à éffectuer des intéractions entre ceux-ci.
Par exemple j'ai une classe dans le package view "FenetreX" qui contient notament un JTextField, et un JButton, je place un listener sur le JButton : btMonBouton.addActionListener(new EventsX(this));
Dans mon package controller j'ai une classe "EventsX" qui doit gèrer les évènement de la classe "FenetreX", cette classe contient les méthodes d'ActionListener ainsi qu'une variable d'instance de ma classe "FenetreX".
private FenetreX maFenX;
//Constructeur.
public EventsX(FenetreX pMaFenX) {
this.maFenX=pMaFenX;
}
Mon problème comment récupèrer la valeur de mon JTextField depuis ma classe "EventsX" ?
Merci d'avance.
-
En général, le contrôleur n'a pas à garder de référence sur la vue, il ajuste besoin de s'enregistrer auprès d'elle.
Pour récupérer les valeurs, il faut utiliser les évènements.
J'ai une solution à te proposer, mais il existe d'autres moyens (propres) de s'en sortir:
- Tu "masques" le contenu de ton composant FenetreX. J'entends par là que le reste de l'appli, et en particulier le contrôleur, ne doit pas savoir quels composants il utilise en interne.
- Tu permets d'écouter ce composant par le biais d'un ou plusieurs listener. Tu peux créer ta propre interface, mais dans un cas aussi simple, autant utiliser le DocumentListener et l'ActionListener (voire une Action).
- Ton EventX place les listeners (cela peut n'être qu'une seule classe)
Comme ça, tu pourras décider de transformer ton composants comme tu le sens, tu n'auras qu'à continuer à utiliser les listeners.
-
-
Merci à vous, je vais potasser cela... ;)