JoptionPane ShowConfirmDialog
J'ai un programme Java. Quand je lance le programme, ça va me donner un GUI qui, comme je l'ai attaché.
Quand je veux le fermer, il invite une boîte de dialogue de confirmation. Si j'appuie sur le bouton Oui, il va quitter le programme à l'aide de System.exit()
.
public static void main(String args[])
{
ButtonTest app = new ButtonTest( );
app.addWindowListener(
new WindowAdapter( )
{
public void windowClosing (WindowEvent e)
{
String message = " Really Quit ? ";
String title = "Quit";
int reply = JOptionPane.showConfirmDialog(null, message, title, JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION)
{
System.exit(0);
}
}
}
);
}
Si je ne veux pas quitter le programme, que puis-je faire? System.continued()
?
Supprimer
mais lorsque je clique sur non, l'ensemble du programme disparu, mais je peux voir dans l'invite de commande, il est encore à travailler .
Essayez d'ajouter
else{}
partie.mais lorsque je clique sur non, l'ensemble du programme disparu, mais je peux voir dans l'invite de commande, il est encore à travailler .
Essayez d'ajouter
app.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
.OriginalL'auteur Eric | 2012-05-23
Vous devez vous connecter pour publier un commentaire.
Vous N'avez pas besoin d'autre dans ce cas
OriginalL'auteur David
Essayer de définir cette option,
[Édité]
Donc, votre code va devenir quelque chose comme cela,
[Explication]
Vous pensez peut-être pourquoi il est comme ça. Le comportement de windows bouton fermer pour
JFrame
, contrairement àFrame
,est de cacher la fenêtre. Par conséquent, il permet de masquer/fermeture de la fenêtre de toute façon. Mais quand vous préciser qu'il faut aussi quitter le programme, lorsque l'utilisateur clique suryes
. Ensuite, outre la fermeture de la fenêtre, il permet également de quitter le programme. Et lorsque l'utilisateur cliqueno
, il ne fait rien, mais ferme la fenêtre de toute façon. Par conséquent, vous devez le dire explicitement queDO_NOTHING_ON_CLOSE
.[Docs]
Ref: JFrame docs
Mise à jour de ma réponse en conséquence.
Ajouté des explications et des documents de référence.
OriginalL'auteur Adeel Ansari
Si vous me le demandez, je vais aller avec, sur
YES SELECTION
au lieu de brusquement fermer ma Demande avecSystem.exit(0)
, je vais choisir la douceur de la fermeture de mon Application, en utilisantframeObject.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
et surNO SELECTION
, je vais aller pourframeObject.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE)
. Voici un exemple de programme pour votre aide :OriginalL'auteur nIcE cOw
Si vous souhaitez que le programme à continuer lorsque vous appuyez sur NON, de placer le reste de votre code dans le bloc else ou appeler la fonction où vous avez placé le reste de votre code.
Suppression de bloc else est également une option si vous ne voulez pas le lieu, une action sur le bouton NON parce que le JOptionPane.showConfirmDialog() va fermer de toute façon. Vous pouvez continuer avec le reste de votre code après l'instruction if.
FYI - Il n'y a pas de Système.continuer(). Le programme assez bien fait sur son propre.
OriginalL'auteur Mayank Mamgaain
Vous pouvez ajouter un
else
bloc. si vous souhaitez exécuter la méthode main de nouveau (ce qui je suppose que vous faites), il devrait ressembler à ceci. Vous devriez avoir quelque méthode lequel vous exécutez si l'utilisateur choisit pas, qu'elle est la principale méthodemain(null)
ou une autre méthode.OriginalL'auteur CodingNinja