imacro - Java: JFrame sur les actions de fermeture se ferme de toute façon même si "Non" est cliqué



imacros boucle (2)

Vérifiez si vous avez défini une opération de fermeture par défaut comme,

jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

même si vous ne l'avez pas fait, votre cadre se cache (l'opération de fermeture par défaut est HIDE_ON_CLOSE ) en cliquant sur "Non".

à la place, ajoutez ceci comme opération de fermeture par défaut.

jframe.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

Cela gardera votre cadre dans l'état existant, si un utilisateur choisit l'option "Non".

https://ffff65535.com

Savez-vous pourquoi mon JFrame se ferme anbyway même si je clique sur le bouton "Non"? C'est mon code:

jframe.addWindowListener(new java.awt.event.WindowAdapter() {
        @Override
        public void windowClosing(java.awt.event.WindowEvent windowEvent) {
            int confirm = JOptionPane.showOptionDialog(jframe,
                    "Sei sicuro di voler chiudere EconomatoUTL?",
                    "Attenzione!", JOptionPane.YES_NO_OPTION,
                    JOptionPane.QUESTION_MESSAGE, null, null, null);

            if (confirm == JOptionPane.YES_OPTION) {

                Runtime runtime = Runtime.getRuntime();
                try {
                    runtime.exec("cmd /C basexserver.bat stop");
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                System.exit(1);
            }
        }
    });

Je l'ai trouvé dans plusieurs forums et ils disent que ça marche ... Où est l'erreur?


Vous êtes déjà dans un événement windowClosing , qui n'est pas annulé. Donc la fenêtre sera fermée.

Cela fait longtemps, mais vous pouvez probablement annuler l'événement en utilisant windowEvent .





windowlistener