2014-09-18 2 views
-1

Je travaille avec l'application Swing. et dans l'une de mes applications quand j'ai mis du code sur l'événement windowclosing.JoptionPane Opération Oui Option même I Appuyez sur Entrée Oui Non

try { 
    int dialog = JOptionPane.showConfirmDialog(
     null, 
     "are you sure?", 
     "Warning", 
     JOptionPane.YES_NO_OPTION, 
     JOptionPane.QUESTION_MESSAGE 
    ); 
    if (dialog == JOptionPane.YES_OPTION) { 
     System.out.println("Close system."); 
     System.exit(0); 
    } else if (dialog == JOptionPane.NO_OPTION) { 
     System.out.println("do not Close system."); 
    } 
} catch (Exception ex) { 
    ex.printStackTrace(); 
} 

et comme je donne Oui option avec l'espace et de la même manière pas de bouton sur l'espace son fonctionnement bien. mais quand j'ai essayé de faire les mêmes choses en entrant. il prend tout le temps oui option même si je presse aucune option sa prise oui et que cette fenêtre est fermée.

alors comment puis-je empêcher cela. et réaliser ce que je veux faire? See this image

+2

Pour une meilleure aide plus rapidement, postez un [MCVE] (http://stackoverflow.com/help/mcve) (Exemple vérifiable complet minimal). –

+0

okey juste min je donne une capture d'écran :) –

+0

@AndrewThompson voir l'image obtenir l'idée maintenant si je me concentre pas et appuyez sur Entrée puis toujours en appuyant sur Oui par défaut. c'est le problème –

Répondre

3

C'est le comportement de la touche Entrée par rapport à la touche Espace. Vous pouvez utiliser OK_CANCEL_OPTION, car OK est plus associé à Enter, et peut être déconseillé en utilisant la touche Entrée pour "Annuler".

+0

Merci pour ans :) et toi si je ne me trompe pas tu veux dire que ça dépend du look et du remplissage? –

+0

Je l'ai essayé avec et sans Nimbus sur Windows en vain. J'ai peur que Enter soit câblé au bouton par défaut. –

+0

okey frère je l'ai eu. et toi je ne peux pas dire que je ne peux pas être vrai. parce que ce que vous dites est logique. :) est-il possible que je puisse l'empêcher? –