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 :

Récupérer la fenetre principale d'un actionlistener


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 226
    Points : 102
    Points
    102
    Par défaut Récupérer la fenetre principale d'un actionlistener
    Bonjour j'ai un petit problème:
    je voudrais pour voir récupérer la fenetre en cours dans mon actionlistener.
    J'ai fais ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    bWinfert.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent evt){
        ActionBoutonIntro(this,1);
      }
    });
    Je voudrais qu'a la place du "this" je récupère le fenetre en cours.
    Comment faire ?
    Merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 77
    Points : 84
    Points
    84
    Par défaut
    Tu peux stocker dans ta classe la fenêtre en cours, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private JFrame fenetre_en_cours;
    ensuite tu peux accèder à cette fenêtre comme tu veux selon les règles de visibilité des propriétés.

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 153
    Points : 100
    Points
    100
    Par défaut
    salut,

    pour récupérer la fenêtre en cours tu dois pouvoir récupérer l'instance en cours de ta classe Fenetre. Pour cela, tu déclarres un attribut statique de type Fenetre comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static Fenetre maFenetre;
    en supposant bien sur que Fenetre est la classe de ta fenêtre. Ensuite, tu écris une méthode qui récupère la valeur de cet attribut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public Fenetre getInstance(){
      return maFenetre; 
    }
    à chaque fois que tu voudras récupérer l'instance en cours, tu fais:
    Bon courage et si t'as d'autres questions n'hésite pas
    Rien ne sert de courir, il faut partir à point.

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 226
    Points : 102
    Points
    102
    Par défaut Merci
    Merci beacoup a toi c bête mais j'y avais pas pensé

  5. #5
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 153
    Points : 100
    Points
    100
    Par défaut
    Je t'en prie

    est-ce que tu pourrais juste mettre le tag Résolu stp, merci
    Rien ne sert de courir, il faut partir à point.

  6. #6
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    en désespoir de cause, si pour une raison quelconque tu n'as pas la possibilité d'accéder à la fenêtre en cours, il existe la méthode suivante de la classe SwingUtilities :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public static Window getWindowAncestor(Component c);

  7. #7
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 153
    Points : 100
    Points
    100
    Par défaut
    g oublié de te préciser un détail: dans le constructeur de ta boite de dialogue, il faut que fasses ceci:
    maFenetre étant l'attribut statique que tu as déclarré plus haut.

    Ciao
    Rien ne sert de courir, il faut partir à point.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    G une petite rectification à ce que tu dit Samanta, j'espere que tu ne vas pas le prendre mal.
    Ce que tu dis de faire ressemble beaucoup au Design Pattern Singleton, et le constructeur et la méthode getInstance ne sont pas tout à fait déclaré comme ca:
    Le constructeur tu le déclare normalement comme tu l'aurai fait pour une autre classe mais tu le met en private.
    Et la méthode getInstance donne qqchose comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public static Fenetre getInstance() {
    if (instance == null)
       instance = new Fenetre();
    return instance;
    }
    Mais ce pattern bloque l'instanciation de cette classe à une instance unique qui a un accès de type global par la méthode getInstance()
    Mess with the best, die like the rest!

  9. #9
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 153
    Points : 100
    Points
    100
    Par défaut
    Citation Envoyé par barbu0055
    G une petite rectification à ce que tu dit Samanta, j'espere que tu ne vas pas le prendre mal.
    il est sur ses gardes maintenant
    Rien ne sert de courir, il faut partir à point.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Points : 626
    Points
    626
    Par défaut
    http://java.developpez.com/faq/java/..._Singleton_def

    2 methodes possibles, Samanta a repris une methode simililaire pour obtenir l'instance en cours mais sa methode permet toujours de construire d'autres instance (d'ou constructeur public). Des que tu creera une nouvelle instance tu n'aura acces qu'a celle-ci par get...

    Pour ton probleme, Vrylx a raison, c'est le plus simple et le mieux... Tu n'a pas besoin de getInstance() et tout ca....

    A la rigeur, mais au niveau performance cela ne doit pas etre top, tu n'a meme pas besoin de garder une reference car si je comprends bien, cet actionlistener est ajouté à un bouton de la fenetre que tu veux utiliser dans ta fonction.

  11. #11
    Futur Membre du Club
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Cyborg289 Voir le message
    Bonjour j'ai un petit problème:
    je voudrais pour voir récupérer la fenetre en cours dans mon actionlistener.
    J'ai fais ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    bWinfert.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent evt){
        ActionBoutonIntro(this,1);
      }
    });
    Je voudrais qu'a la place du "this" je récupère le fenetre en cours.
    Comment faire ?
    Merci d'avance
    Pourquoi pas bêtement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    bWinfert.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent evt){
        ActionBoutonIntro(TaFenêtre.this,1);
      }
    });
    Si ton listener est bien défini dans ta classe je doute qu'il y ait plus simple...

Discussions similaires

  1. pb d'affichage de la fenetre principale
    Par amad206 dans le forum Langage
    Réponses: 4
    Dernier message: 05/08/2005, 09h23
  2. [MFC][Debutant] Fenetre principale
    Par BNS dans le forum MFC
    Réponses: 2
    Dernier message: 01/08/2005, 15h18
  3. Fenetre principale
    Par benoit70 dans le forum MFC
    Réponses: 3
    Dernier message: 25/04/2005, 11h10
  4. Réponses: 15
    Dernier message: 17/01/2005, 17h08
  5. [web] [Perl\Tk]Positioner la fenetre principale
    Par etranger dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 28/12/2004, 18h53

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