Comment fait on , quand tous les éléments d'un panel ont attrapé le focus, pour que ce panel perde le focus et que un autre panel le récupère???
Version imprimable
Comment fait on , quand tous les éléments d'un panel ont attrapé le focus, pour que ce panel perde le focus et que un autre panel le récupère???
tu joues avec les methodes :
setFocusable();
requestFocus() du panel qui doit recuperer le focus.
ok mais est ce que tu peu me donner rapidement un exemple de comment on joue avec ces méthode ?
par exemple on a dans un premier fichier
et le second fichierCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public class PanelFocusable1 extends JPanel { public class PanelFocusable() { super(); JButton bout = new Boutton("test"); bout.addActionPerformed(new ActionEvent(){ public void actionPerformed(Event e) { construitEtAfficheSecondPanel(); //construit et affiche un second panel. } }); } }
Code:
1
2
3
4
5
6
7
8
9
10 public class SecondPanelFocusable extends JPanel { public SecondPanelFocusable() { super(); this.setVisible(true); // contient un certain nombre de composant focusable aussi } }
Code:
1
2
3
4
5
6
7
8
9
10
11
12 public class SecondPanelFocusable extends JPanel { public SecondPanelFocusable() { super(); this.setFocusable(true); this.setVisible(true); this.requestFocus(); // contient un certain nombre de composant focusable aussi } }
mais ca na marche pas.
Car une fois que le focus est sur le second panel, et bien le fait de taper sur tab, fait tourner le focus sur les différents composants (en cycle), mais ne repasse jamais sur le premier panel. Comment je doit faire?
Bonjour,
Une solution pourrai etre de mettre un keylistener sur ton dernier element et en validant cette élément avec entrée ou tab ton focus va sur l'autre panel
Code:
1
2
3
4
5
6
7
8 tonElement.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER){//si tu tapes sur entrée tonPanel.requestFocus();//ton focus va sur l'autre panel } } });