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 :

[Débutant] Impossible de fermer la fenêtre AWT


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut [Débutant] Impossible de fermer la fenêtre AWT
    Bonsoir,

    Je commence AWT (ne me parlez pas de Swing, j'ai de bonnes raisons pour rester pour l'instant à AWT), et je rencontre un petit soucis: je n'arrive aps à fermer la fenêtre Java que je crée.

    Par exemple avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import java.awt.*;
     
    public class Essai
    {
     
      public static void main(String argv[])
      {
        Frame f = new Frame("Fenetre");
        Button b = new Button("Push me");
     
        f.add(b);   // On place le bouton dans la frame
        f.pack();   // On ajuste la frame
        f.setVisible(true);   // Et on l'affiche
      }
    Dernière version d'XP et du JDK.

  2. #2
    Membre éprouvé
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Par défaut
    Normal, il faut prévoir le code pour fermer la fenêtre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    f.addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                    dispose();
                    System.exit(0);
            } 
    } );
    Pourquoi ne pas utiliser Swing?

    Swing te permet de faire la même chose en une seule ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Citation Envoyé par Descent
    Normal, il faut prévoir le code pour fermer la fenêtre
    Ah oui, évidemment, j'ai l'air con, maintenant. :-)

    Pourquoi ne pas utiliser Swing?
    Swing te permet de faire la même chose en une seule ligne.
    Parce qu'on m'a demandé de reprendre du vieux code Java (qui n'utilise pas Swing), et que je dois apprendre le Java pour cette occasion...
    Une fois que je connaitrai AWT, je pourrai convenablement décoder l'existant, et je me mettrai alors à Swing pour une mise à jour du code.

  4. #4
    Membre éprouvé
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Par défaut
    Citation Envoyé par oodini
    Citation Envoyé par Descent
    Normal, il faut prévoir le code pour fermer la fenêtre
    Ah oui, évidemment, j'ai l'air con, maintenant. :-)
    Mais non, dis pas ça. Faut apprendre c'est tout...

    Citation Envoyé par oodini
    Pourquoi ne pas utiliser Swing?
    Swing te permet de faire la même chose en une seule ligne.
    Parce qu'on m'a demandé de reprendre du vieux code Java (qui n'utilise pas Swing), et que je dois apprendre le Java pour cette occasion...
    Une fois que je connaitrai AWT, je pourrai convenablement décoder l'existant, et je me mettrai alors à Swing pour une mise à jour du code.
    Ok je comprends mieux.

    Sinon, si ça marche, un petit clic sur résolu? Si tu as d'autres questions n'hésite pas!


  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Citation Envoyé par Descent
    Normal, il faut prévoir le code pour fermer la fenêtre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    f.addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                    dispose();
                    System.exit(0);
            } 
    } );
    Ca ne fonctionne pas.
    Ca coince sur la méthode dispose(). Apparemment, elle est définie dans java.awt.Window. N'est donc pas héritée par java.awt.event...

    Mais peut-être suis-je dans les choux quant à la relation des classes. :-/

  6. #6
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 201
    Par défaut
    tu peut enlevé dispose() le programme est juste le truc de fermeture est System.exit(0);

  7. #7
    Membre éprouvé
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Par défaut
    C'est f.dispose() le code exacte...

    Si tu mets dispose() tout court ça s'appliquera à la classe elle même, et bien sur dispose() n' a jamais été défini pour Essai (il a du penser que t'avais fait Essai extends Frame).
    Ceci dit il ne sert à rien de faire dispose() avant de faire system.exit(0)

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/08/2011, 19h03
  2. Comment fermer une fenêtre quand la souris et clavier sont inactifs ?
    Par Goldenkiller dans le forum Composants VCL
    Réponses: 7
    Dernier message: 06/12/2004, 22h09
  3. Fermer la fentre sans quitter le programme?
    Par tomburn dans le forum OpenGL
    Réponses: 13
    Dernier message: 06/12/2004, 17h02
  4. erreur " impossible de focaliser une fenêtre désactivée
    Par djouahra.karim1 dans le forum Bases de données
    Réponses: 2
    Dernier message: 05/12/2004, 10h21
  5. Fermer une fenêtre au bout d'un certain temps.
    Par cprogil dans le forum Composants VCL
    Réponses: 5
    Dernier message: 27/11/2003, 18h25

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