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 :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) { } }); }
Pourquoi ?
MERCI D'avance![]()
Partager