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

AWT/Swing Java Discussion :

[AWT ou Swing] Communication entre 2 (J)Panel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de oursblanc
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Par défaut [AWT ou Swing] Communication entre 2 (J)Panel
    Je veux installer deux panneaux dans une fenêtre.
    Lors d'un click de bouton dans l'un des panneaux, je veux faire transmettre un parametre de ce panneau a l'autre panneau.
    La fenetre et les deux panneaux sont trois objets différents.
    Le problème est donc de communiquer entre deux objets graphiques ayant même contener.
    J'utilise des composants Swing mais si la solution demandent des composant AWT, pas de problème.

  2. #2
    Membre expérimenté Avatar de aDamas
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 260
    Par défaut
    Personnelement je ferais ça comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    public class myPanneau1 extends JPanel
    {
    public myPanneau1(myFenetre fenetreParent)
       {
       this.fenetreParent=fenetreParent;
       }
       ...
       public void changementParametre()
       {
       ...
       fenetreParent.setParametre(parametre)
       }
     
       private myFenetre fenetreParent;
    }
     
    public class myPanneau2 extends JPanel
    {
       ...
       public void setParametre(monParametre)
       {
       ...
       }
       ...
    }
     
    public class myFenetre extends JFrame
    {
       public myFenetre ()
       {
       panel1=new myPanneau1 (this);
       panel2=new myPanneau2 (...)
       }
     
       public void setParametre(monParametre)
       {
       panel2.setParametre(monParametre);
       }
     
       private myPanneau1 panel1;
       private myPanneau2 panel2; 
    }
    Je sais pas si c'est très propre, mais ça fonctionne.

  3. #3
    Membre confirmé Avatar de oursblanc
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Par défaut
    C'est astucieux (c'est le myPanneau1(this) qui me manquait pour faire plus propre). Mais je continue à penser que c'est une bidouille
    Merci

  4. #4
    Membre expérimenté Avatar de aDamas
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 260
    Par défaut
    Citation Envoyé par oursblanc
    Mais je continue à penser que c'est une bidouille
    Merci
    Je sais pas,... si t'as mieux ça m'interresse...

  5. #5
    Membre expérimenté Avatar de aDamas
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 260
    Par défaut
    En fait tu n'a pas besoin de passer la fenêtre, tu peux la récupérée en faisant un getParent() avec un casting explicite.

  6. #6
    Membre confirmé Avatar de oursblanc
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Par défaut
    Tu peux m'écrire ça ?

  7. #7
    Membre expérimenté Avatar de aDamas
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 260
    Par défaut
    Citation Envoyé par oursblanc
    Tu peux m'écrire ça ?
    Sûr! Voilà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((myFenetre )getParent()).setParametre(parametre);

  8. #8
    Membre confirmé Avatar de oursblanc
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Par défaut
    J'aime moins : c'est moins clair.
    Merci quand même. 8)

  9. #9
    Membre confirmé Avatar de oursblanc
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Par défaut
    Comme je n'ai pas encore testé, je ne mets pas "résolu".

  10. #10
    Membre confirmé Avatar de oursblanc
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 81
    Par défaut
    La méthode marche bien et mériterait d'être dans les FAQ. J'ai recommencé avec d'autres composants (que j'ai créés) et c'est un moyen de communication adéquat pour le problème.
    Merci encore 8)

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/03/2011, 17h11
  2. Réponses: 5
    Dernier message: 20/08/2008, 17h50
  3. Réponses: 5
    Dernier message: 25/03/2003, 19h43
  4. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 08h05

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