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 :

Une fenêtre qui écoute les événement d'une autre fenêtre


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 53
    Points : 47
    Points
    47
    Par défaut Une fenêtre qui écoute les événement d'une autre fenêtre
    Bonjour, je débute avec Swing et voici mon problème :

    J'ai une JFrame frame1 qui possède un bouton bOuvrir et un label lResultat.
    Quand je clique sur bOuvrir, je crée une nouvelle JFrame frame2.
    frame2 contient 2 boutons: bValider et bAnnuler.
    Si je clique sur bValider, je veux que le texte de lResultat devienne : 'Validé'.
    Si je clique sur bAnnuler, je veux que le texte de lResultat devienne : 'Annulé'.

    Voici mon code au niveau de frame1:
    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
    .......
    bOuvrir.addActionListener(new ActionListener()
    {
       public void actionPerformed(ActionEvent e)
      {
          Frame2 frame2 = new Frame2();
    
         // Je veux ajouter frame1 comme listener
          frame2.addBoutonValiderListener(this);
          frame2.addBoutonAnnulerListener(this);
       }
    }
    ........
    
    public void validation()
    {
        lResultat.setText("Validé");
    }
    
    public void annulation()
    {
        lResultat.setText("Annulé");
    }
    Au niveau de Frame2 j'ai implémenté ce qu'il faut pour que les méthodes validation() et annulation() soit appellés sur les listeners au moment du clic sur les boutons correspondant.

    Le soucis vient des 2 lignes:
    frame2.addBoutonValiderListener(this);
    frame2.addBoutonAnnulerListener(this);

    En effet 'this' correspond non pas à ma frame1 mais à l'ActionListener anonyme que j'ai créé pour bOuvrir.
    Comment faire pour pouvoir appeller ces 2 méthodes en passant mon objet frame1 en paramètre?

    Merci d'avance pour toute aide
    DJ Malo

    www.radioabf.net
    La radio 100 % musiques électroniques sans pub.

  2. #2
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Je crois que tu n'as pas d'autre solution que de créer une référence statique vers frame1 pour pouvoir y faire référence à partir d'une classe anonyme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    static JFrame frame1=this;
    ...
    bOuvrir.addActionListener(new ActionListener(){
    ...

  3. #3
    Membre du Club
    Inscrit en
    Avril 2002
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 53
    Points : 47
    Points
    47
    Par défaut
    OK, merci je vais essayer ça
    DJ Malo

    www.radioabf.net
    La radio 100 % musiques électroniques sans pub.

  4. #4
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Sinon, il doit y avoir possibilité de faire qqchose 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
    .......
    bOuvrir.addActionListener(new ActionListener()
    {
       public void actionPerformed(ActionEvent e)
      {
          Frame2 frame2 = new Frame2();
     
         // Je veux ajouter frame1 comme listener
          frame2.addBoutonValiderListener(MaJFrame.this);
          frame2.addBoutonAnnulerListener(MaJFrame.this);
       }
    }
    ........
    où MaJFrame est le nom de ta classe héritant de JFrame

  5. #5
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    C'est résolu ? Si oui n'oublie pas de tagguer en

Discussions similaires

  1. Réponses: 8
    Dernier message: 15/06/2015, 10h34
  2. Réponses: 1
    Dernier message: 14/04/2015, 12h35
  3. Réponses: 3
    Dernier message: 02/04/2013, 23h10
  4. Réponses: 5
    Dernier message: 27/04/2010, 14h55

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