Bonjour à tous,

j'affiche dans mon programme un JOptionPane sur lequel j'aimerai pouvoir naviguer entre les boutons à l'aide des flèches.

Pour celà, j'utilise donc setFocusTraversalKeys pour rajouter la touche flèche droite comme ceci :

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
 
 
Object[] options = {"Editer","Retour"};
 
JOptionPane pan = new JOptionPane();
Set forwardKeys = pan.getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS);
Set newForwardKeys = new HashSet(forwardKeys);
newForwardKeys.add(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, 0));
pan.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,newForwardKeys);
 
System.out.println("FORWARD KEY : "+pan.getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS).toString());
 
 
int answer = pan.showOptionDialog(
				SwingUtilities.getWindowAncestor(ftf),
				"Message",
				"Titre",
				JOptionPane.YES_NO_OPTION,
				JOptionPane.ERROR_MESSAGE,
				null,
				options,
				options[1]);

J'obtiens bien en sorti : FORWARD KEY : [ctrl pressed TAB, pressed TAB, pressed RIGHT]

mais lorsque je veux passer le focus d'un bouton à l'autre, ça ne fonctionne pas avec la touche flèche droite. Ceci fonctionne cependant avec la touche TAB.

Dois-je ajouter le focustraversakeys ailleurs que directement sur mon pan?
Merci d'avance