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

Agents de placement/Fenêtres Java Discussion :

Jframe Jpanel actionListener


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Informaticien
    Inscrit en
    Juin 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Informaticien
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2004
    Messages : 184
    Par défaut Jframe Jpanel actionListener
    Bonjour à tous,

    j'ai une jframe qui possède plusieurs jpanel (stockés dans des classes distinctes).
    ces jpanel (qui possèdent des boutons radio) gerent leurs propres listeners.

    je cherche à savoir depuis la jframe quand un actionlistener à été déclenché dans un jpanel.

    j'ai recherché sur le forum, mais je ne vois rien qui puisse résoudre mon problème. (je ne cherche pas à déplacer tous les listeners)

    je peux toujours passer la jframe en paramètre dans les jpanel et exécuter une fonction, mais est-ce bien conseillé ?

    Merci pour vos suggestions.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    961
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 961
    Par défaut
    Swing a été conçu pour être utilisé avec le principe MVC (Modèle Vue Contrôleur). En conséquence, les jFrames sont de simples composant graphiques qui n'ont pas à contrôler les jPanels, et ne disposent pas de moyen de "savoir depuis la jframe quand un actionlistener à été déclenché dans un jpanel".

    A votre place, je réviserai l'architecture pour utiliser le MVC, ce qui éliminera le problème (et bien d'autres).

    Il est peut-être trop tard pour modifier votre application. Dans ce cas, vous pouvez effectivement passer la jFrame aux jPanels, mais non, ce n'est pas conseillé. Mais à ce stade, c'est peut-être la meilleure solution.

  3. #3
    Membre très actif
    Homme Profil pro
    Informaticien
    Inscrit en
    Juin 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Informaticien
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2004
    Messages : 184
    Par défaut
    Le choix effectué dans un jpanel peut influer sur d'autres (suivant certaines règles).
    mon but est donc que pour chaque action je puisse tester ces règles.

    cela peut donc être fait par une classe à part (et effectivement cela n'est pas le travail de la jframe)
    mais comment savoir si quelque chose s'est produit ?

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    961
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 961
    Par défaut
    Dans vos JPanel, éliminez tout ce qui concerne les comportements de l'application, n'y laissez que ce qui concerne l'apparence. Déplacez les comportements dans une nouvelle classe, le contrôleur. (Si votre application est complexe, vous devrez peut-être créer un contrôleur par JPanel plus un contrôleur global.)

    Le contrôleur doit avoir une référence sur tous les panels qu'il gère. Les vues (vos jPanels) doivent avoir une référence sur le contrôleur.

    Dans les listeners, appelez le contrôleur. Comme celui-ci dispose d'une référence vers toutes les vues, il peut facilement vérifier vos règles.

    Je vous conseille vivement de vous renseigner sur MVC (ou tout pattern de conception d'IHM de votre choix). Avec une bonne structure, ce genre de problème se résout de lui-même. C'est d'autant plus important que Swing a été prévu pour cela.

  5. #5
    Membre très actif
    Homme Profil pro
    Informaticien
    Inscrit en
    Juin 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Informaticien
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2004
    Messages : 184
    Par défaut
    Merci pour vos réponses.

    je vais me diriger sur cette solution.
    je cherchais à pouvoir réutiliser ailleurs ces Jpanels sans la contraintes des règles mais ceci est un autre problème...

    Cordialement,

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    961
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 961
    Par défaut
    Rien ne vous empêche de créer un contrôleur par jPanel et de réutiliser ailleurs le couple panel et contrôleur.

  7. #7
    Membre actif Avatar de arafat877
    Inscrit en
    Septembre 2010
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 46
    Par défaut Solution
    Salut !
    je te recommande de déclarer une variable booléenne publique et statique qui va être changer par l'ActionListener de ton RadioButton, puis depuis ta Jframe tu pourra lire la valeur de chacune de ces JPanel, et voilà.

    j'ai une autre idée, tu peut consulter mon blog dont j'ai déposer une article très intéressant qui va t'aider énormément : http://attractive-java.blogspot.com/.

    Bon courage

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. propriétés Jframe, jpanel, etc
    Par skysee dans le forum JDeveloper
    Réponses: 2
    Dernier message: 18/04/2008, 14h32
  2. [JPanel]ordre d'affichage JFrame JPanel
    Par cpr0 dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 23/07/2007, 12h46
  3. JFrame JPanel et scope de variable
    Par yolepro dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 15/12/2006, 15h05
  4. Mise a jour de l'affichage JFrame-JPanel
    Par aristeas dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 10/06/2006, 10h12
  5. [JFame][JPanel][ActionListener] erreur
    Par floanne dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 22/02/2006, 16h20

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