Demande de confirmation de sortie du programme

Résolu
Manthis Messages postés 40 Date d'inscription vendredi 21 décembre 2001 Statut Membre Dernière intervention 2 octobre 2006 - 29 sept. 2006 à 11:05
Manthis Messages postés 40 Date d'inscription vendredi 21 décembre 2001 Statut Membre Dernière intervention 2 octobre 2006 - 2 oct. 2006 à 09:59
Bonjour,

Je rencontre un petit problème. En effet je voudrais demander confirmation de la sortie du programme lorsque l'utilisateur clique sur la croix en haut à droite de la fenêtre Shell. Voici mon code pour illustrer mon propos:

sShell.addShellListener(new org.eclipse.swt.events.ShellAdapter()
        {
            public void shellClosed(org.eclipse.swt.events.ShellEvent e)
            {
                // On demande confirmation à l'utilisateur
                MessageBox mb = new MessageBox(sShell, SWT.ICON_QUESTION | SWT.OK | SWT.CANCEL);
                int reponse = 0;
               
                mb.setText("Demande de confirmation");
                mb.setMessage("Voulez-vous vraiment quitter?");
                reponse = mb.open();
               
                // Si l'utilisateur clique sur OK on quitte le programme
                if (reponse == SWT.OK)
                {
                    // On quitte le programme
                    System.exit(0);
                }
            }
        });

Le problème est que même si l'utilisateur clique sur annuler, le programme se termine.
Je voudrais donc savoir comment empêcher que le programme se termine...
Quelqu'un peut-il m'aider?

Merci d'avance

3 réponses

Manthis Messages postés 40 Date d'inscription vendredi 21 décembre 2001 Statut Membre Dernière intervention 2 octobre 2006
2 oct. 2006 à 09:59
Ok, j'ai trouvé la réponse par moi même, voici le code qui en résulte:

sShell.addShellListener(new org.eclipse.swt.events.ShellAdapter()
        {
            public void shellClosed(org.eclipse.swt.events.ShellEvent e)
            {
                // On demande confirmation à l'utilisateur
                MessageBox mb = new MessageBox(sShell, SWT.ICON_QUESTION | SWT.OK | SWT.CANCEL);
               
                mb.setText("Demande de confirmation");
                mb.setMessage("Voulez-vous vraiment quitter?");                e.doit mb.open() SWT.OK;
            }
        });

Voila, en espérant que ça en aide d'autres...
3
kyript Messages postés 346 Date d'inscription jeudi 7 avril 2005 Statut Membre Dernière intervention 26 mars 2012
1 oct. 2006 à 03:46
peut etre en rajoutant ca

setDefaultCloseOperation(WindowConstants.

DO_NOTHING_ON_CLOSE)
0
Manthis Messages postés 40 Date d'inscription vendredi 21 décembre 2001 Statut Membre Dernière intervention 2 octobre 2006
2 oct. 2006 à 09:45
Oups, j'ai oublié de préciser je suis en SWT et pas Swing en conséquent la solution que tu proposes ne marche malheureusement pas...
0