IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Instance accessible partout


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 18
    Par défaut Instance accessible partout
    Bonjour,

    J'ai un problème avec Java en utilisant Swing, même si ce n'est pas vraiment spécifique à ce dernier. Disons que j'ai 3 classes : Fenetre qui étend JFrame, Bouton qui étend JButton et Feuille qui étend JPanel. dans Fenetre je crée une instance de Bouton et de Feuille. Je veux modifier un attribut de Feuille au click sur un composant Bouton.

    Le problème : Si c'est Bouton qui implémente l'ActionListener alors au déclenchement de l'évènement je n'aurai pas accès à l'objet Feuille. Si c'est Fenetre qui implémente l'ActionListener alors ça devient très vite du grand n'importe quoi vu que dans le cas réel j'ai beaucoup plus qu'un simple bouton et qu'il faut donc plein de "e.getSource()" pour pouvoir rediriger vers la bonne action. Normalement il devrait y avoir un design pattern pour résoudre ce problème, mais je ne le connais pas. Sinon, est-ce qu'il y a une méthode pour que l'objet Fenetre (et donc l'objet Feuille et l'objet Bouton) soit accessible partout dans l'application.

    PS : En écrivant ce post, j'ai pensé à une classe statique avec un get() qui retourne toujours l'instance de Fenetre. Je ne sais pas ce que vous en pensez ?

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Et si ActionListener n'était implémenté ni par Fenetre, ni par Bouton, ni par autre chose que BoutonActionListener, dont le constructeur prend une Fenetre en paramètre ?

    PS : En écrivant ce post, j'ai pensé à une classe statique avec un get() qui retourne toujours l'instance de Fenetre. Je ne sais pas ce que vous en pensez ?
    C'est une solution qui évite de devoir passer partout des références à tous les objets intéressants... Mais qui est très casse-gueule.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    Bonjour,

    Le fond du problème est le même que sur ce post.
    MVC est une solution envisageable.

  4. #4
    Membre averti
    Inscrit en
    Août 2008
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 18
    Par défaut
    Salut,

    Merci pour vos réponses ! J'ai commencé par résoudre le problème avec une méthode statique qui retourne l'objet Fenetre et ça marche bien Maintenant, je suis entrain de creuser la voie MVC et c'est vraiment de toute beauté

    Je vais sûrement forker une branche qui utilisera MVC et si c'est concluant je vais merger tout ça dans le main (ça aide d'être seul à bosser sur un projet, on peut faire un freez quand on veut ).

    PS : j'avais déjà bossé sur des frameworks basés sur le deisgn pattern MVC (surtout rails), mais c'est vraiment qu'en implémentant le design pattern soi-même que l'on se rend compte de toute son élegance.

Discussions similaires

  1. Réponses: 7
    Dernier message: 04/05/2010, 18h31
  2. [question débutant] Objet accessible partout
    Par llusca dans le forum Java EE
    Réponses: 5
    Dernier message: 24/09/2009, 09h34
  3. view_helper accessible partout proprement
    Par vercoutt dans le forum Zend Framework
    Réponses: 3
    Dernier message: 01/08/2008, 09h21
  4. Comment stocker une macro pour qu'elle soit accessible partout
    Par Godzestla dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 06/06/2008, 23h11
  5. "Cacher l'instance Access" ?!?
    Par icare_1er dans le forum Modélisation
    Réponses: 1
    Dernier message: 27/07/2007, 04h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo