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 :

[fenetre à onglets] Intercepter les événements des panels


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Points : 445
    Points
    445
    Par défaut [fenetre à onglets] Intercepter les événements des panels
    Salut à tous,

    j'ai développé une fenetre à onglets.
    Pour une meilleur lisibilité du code et une facilité de maintenance, les 2 panel composants la fenetre à onglet sont 2 classes internes à une classe principale.

    Le problème est que je n'ai les boutons "ok" et "annuler" que sur l'un des 2 onglet (normal) et que donc seule la classe interne possedant les boutons implémente ActionListener.

    Comment récuperer les données des 2 panels lorsque l'on clique sur "ok" ?

    1) Mettre les attributs en "public" pour pouvoir y acceder à partir de la classe principale ?

    2) faire "implements" de l'ActionListener sur la classe principale en ajoutant l'ActionListener sur les bontons "public" récuperés de la classe interne ?

    Code actuel (grosso modo et de tête...):
    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
     
    public class principaleIHM
    {
     
     public principaleIHM()//constructeur principal
     {...}
     
     class onglet1 extends JPanel//paneau 1
     {}
     
     class onglet2 extends JPanel implements ActionListener//paneau 2 contenant les boutons
     {
      JButton ok= new JButton("ok");
      ok.addActionListener(this);
      ok.setActionCommand("ok");
     }
     
     public void actionPerformed(ActionEvent e)
     {...}
    }
    L'interêt du doute est que cela fait avancer.
    (parenthèses)Je suis à la recherche d'un emploi sur Valence(26) et ses environs.
    mon cv:
    http://charegis.netcv.org/

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 85
    Points : 73
    Points
    73
    Par défaut
    LE plus facile est de faire des methode GetAttribut dans les panels dans lesquels tu veux recuperer tes attributs. Parceque les attributs en public non pas trop.

    Comme ca quand tu clique sur OK tu recupere avec les GEtMachin().

  3. #3
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Points : 445
    Points
    445
    Par défaut
    Alors le problème est que je n'arrive pas à ajouter d'ActionListener aux boutons maintenant!
    Le problème vient-il du fait que j'étend JDialog ?
    Comment récuperer l'actionListener et l'ajouter aux boutons ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class Principale extends JDialog implements ActionListener
    {
    ...
    Panel1 oan1 = new Panel1();
    pan1.getAttribut().addActionListener(this);//le "this" que j'ajoute est en fait un JDialog!
     
    class Panel1 extends JPanel
    {}
     
    class Panel2 extends JPanel
    {}
     
    }
    L'interêt du doute est que cela fait avancer.
    (parenthèses)Je suis à la recherche d'un emploi sur Valence(26) et ses environs.
    mon cv:
    http://charegis.netcv.org/

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 85
    Points : 73
    Points
    73
    Par défaut
    Personnellement je te conseille de creer une classe dans un fichier séparé pour ton ActionListener. Tu te le creer avec dans le constructeur les container dont tu as besoin pour recupere les attributs et faire les changement.

  5. #5
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Points : 445
    Points
    445
    Par défaut
    Ok c'ets tout bon, j'avais une erreur dans mon code...

    J'ai malgré tout changé l'architecture et créé une classe interne qui ne gère que l'ActionListener.
    L'interêt du doute est que cela fait avancer.
    (parenthèses)Je suis à la recherche d'un emploi sur Valence(26) et ses environs.
    mon cv:
    http://charegis.netcv.org/

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Petite question : est-ce que tu as une référence sur ta classe principale dans chaucune de tes classes JPanel ?

  7. #7
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Points : 445
    Points
    445
    Par défaut
    Citation Envoyé par ionnn
    Petite question : est-ce que tu as une référence sur ta classe principale dans chaucune de tes classes JPanel ?
    Non c'ets l'inverse.
    Ma classe principale instancie 2 objets Panel à partir de mes 2 classes interne et c'ets donc elle qui a une reference sur les 2 autres classes.

    J'ai donc implémenté une troisième classe interne "ActionList" qui implement ActionListener, et j'ajoute une instance de cette classe à mes boutons où qu'ils soient:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    panel1.boutonOk.addActionListener(new ActionList());
    panel1.boutonAnnuller.addActionListener(new ActionList());
    L'interêt du doute est que cela fait avancer.
    (parenthèses)Je suis à la recherche d'un emploi sur Valence(26) et ses environs.
    mon cv:
    http://charegis.netcv.org/

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 11/08/2009, 01h36
  2. [C#/Custom Control] Comment personnaliser les évènements des contrôles enfants ?
    Par Anto03 dans le forum Windows Presentation Foundation
    Réponses: 21
    Dernier message: 26/09/2008, 08h45
  3. [Xlib] Intercepter les évènements
    Par Laurent Gomila dans le forum Linux
    Réponses: 67
    Dernier message: 25/07/2007, 11h00
  4. [C#] Timer sur les évènements des messages Windows
    Par Nullos Oracle dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/09/2006, 11h33
  5. Réponses: 9
    Dernier message: 23/05/2006, 15h33

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