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 :

Fermer la fenêtre par JMenuItem


Sujet :

AWT/Swing Java

  1. #1
    Inactif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 83
    Points : 43
    Points
    43
    Par défaut Fermer la fenêtre par JMenuItem
    bonjour !

    J' ai créé une fenêtre dans laquelle y a des menus et leurs items (JMenuItem)

    l' un items s' appelle quiter. J' ai donc fait quiter.addActionListener(this);
    Et dans la méthode public void actionPerformed(ActionEvent ev), j' ai mis entre autres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (ev.getSource() == quiter)
    {
           this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
    Bizarrement, je n' arrive pas à fermer la fenêtre en cliquant sur l' item "quiter"

    Et ce n' est pas l' intruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    qui fait défaut puisqu' elle marche dans le constructeur

  2. #2
    Inactif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 83
    Points : 43
    Points
    43
    Par défaut re Fermer la fenêtre par JMenuItem
    Citation Envoyé par raph707
    bonjour !

    J' ai créé une fenêtre dans laquelle y a des menus et leurs items (JMenuItem)

    l' un items s' appelle quiter. J' ai donc fait quiter.addActionListener(this);
    Et dans la méthode public void actionPerformed(ActionEvent ev), j' ai mis entre autres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (ev.getSource() == quiter)
    {
           this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
    Bizarrement, je n' arrive pas à fermer la fenêtre en cliquant sur l' item "quiter"

    Et ce n' est pas l' intruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    qui fait défaut puisqu' elle marche dans le constructeur

    c bon, g compris, la méthode à utiliser c' est : System.exit(0); comme dans c++

  3. #3
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    les setDefaultCloseOperation ne sert pas à fermer la fenêtre, il indique juste à la JFrame comment se fermer si l'on appuie sur le bouton fermer.

    Effectue un dispose() sur ta JFrame ça iras mieux.
    Accessoirement le System.exit est peu recommandé, dans le cad d'une fermeture de fenêtre mieux vaut utiliser dispoe() qui est moins violent et pour le setDefaultCloseOperation utiliser un DISPOSE_ON_CLOSE

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 83
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par sinok
    les setDefaultCloseOperation ne sert pas à fermer la fenêtre, il indique juste à la JFrame comment se fermer si l'on appuie sur le bouton fermer.

    Effectue un dispose() sur ta JFrame ça iras mieux.
    Accessoirement le System.exit est peu recommandé, dans le cad d'une fermeture de fenêtre mieux vaut utiliser dispoe() qui est moins violent et pour le setDefaultCloseOperation utiliser un DISPOSE_ON_CLOSE
    Le DISPOSE_ON_CLOSE marche. Mais le dispose() ne marche pas. J' ai essayé successivement :
    dispose(); System.dispose(); et this.dispose();
    Rien ne marche.
    D' où ma question : à quelle classe appartient la méthode dispose() ?

  5. #5
    Inactif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 83
    Points : 43
    Points
    43
    Par défaut
    pardon !

    je n' avais pas enlevé le zéro (0) dans les parenthèses lorsque j' ai remplacé System.exit par dispose.

    Je suppose que dispose est une méthode de JFrame. Ou plutôt une méthode d' une classe mère de la classe JFrame. Puisque dans le jdk, je n' ai pas vu de méthode dispose() dans la classe JFrame.

  6. #6
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    correct, elle est définie dans la classe java.awt.Window (ça aide beaucoup la javadoc dans ce genre de cas)

Discussions similaires

  1. Réponses: 16
    Dernier message: 05/11/2013, 09h13
  2. Fermer une fenêtre par pression d'un pushbutton
    Par Invité dans le forum Débuter
    Réponses: 6
    Dernier message: 09/09/2010, 20h58
  3. [WD5.5]Fermer une fenêtre par "Echap"
    Par roms19 dans le forum WinDev
    Réponses: 8
    Dernier message: 13/03/2007, 14h25
  4. Réponses: 2
    Dernier message: 06/02/2007, 17h18
  5. Réponses: 5
    Dernier message: 04/01/2007, 14h32

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