KeyEvent qui ne répond pas
Salut,
Problème d'un keyEvent, je dois appuyer entrer pour oui est échappe pour non.
Mais il ne m'affiche même pas mes System.out.println(...)
Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
public static void closeApplication() {
final IhmConverter ihm = IhmConverter.getInstance();
final Object[] options = { "Yes, please", "Oops no!" };
JOptionPane optionPane = new JOptionPane(Final.getMsgExit(), // the message
JOptionPane.QUESTION_MESSAGE, // the type of message
JOptionPane.YES_NO_OPTION, // the type of dialog box
null, // A icon
options, // Array String for buttons text
options[0] // Where 0 is the index of preset button - one that
// will be chosen if we press Enter
);
JDialog dialog = optionPane.createDialog(Final.getMsgExitTitle());
dialog.setAlwaysOnTop(true);
dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
dialog.toFront();
dialog.setFocusable(true);
dialog.setVisible(true);
dialog.addKeyListener(new KeyListener() {
@Override
public void keyPressed(KeyEvent e) {
int keyEsc = e.getKeyCode();
System.out.println(options[0].toString() +" = "+ JOptionPane.YES_OPTION);
if (options[0].equals(JOptionPane.YES_OPTION)
|| keyEsc == KeyEvent.VK_ENTER) {
System.out.println(options[0].toString());
e.consume();
ihm.setVisible(false);
ihm.dispose();
System.exit(0);
} else if (options[1].equals(JOptionPane.NO_OPTION)
|| keyEsc == KeyEvent.VK_ESCAPE) {
e.consume();
// do nothing
System.out.println(keyEsc);
System.out.println(options[1].toString());
}
}
@Override
public void keyReleased(KeyEvent arg0) {
}
@Override
public void keyTyped(KeyEvent arg0) {
}
});
} |
Quand j'utilise le bouton exit de mon JToolBar pour fermer l'application il ferme la boite de dialogue que je fasse oui ou non ou échappe et, quand je ferme l'application avec Alt+F4 il ferme l'application aussi bien avec le bout oui ou non ou échappe.
Pourquoi ?
MERCI D'avance :)