OVH Cloud OVH Cloud

JFrame + question concernant le focus

1 réponse
Avatar
thomas.baruchel
Bonjour,

j'ai une JFrame avec quatre champs de texte (et d'autres composants dont
tous ont été rendus non "focusable"); donc quand l'utilisateur utilise
la touche TAB, on passe de l'un à l'autre. Or tout se fait en cinq temps:

champ1 -> champ2 -> champ3 -> champ4 -> AUCUN_FOCUS
puis on redevient au point de départ.

Je suppose qu'après le champ4, il n'y a plus de focus, car j'ai créé
(à des fins de déboguage) un FocusListener qui affiche grâce à la
méthode toString() quel composant acqiert le focus, or quand on quitte
le champ4, rien ne s'affiche (alors que des informations ésotériques sur
5/6 lignes apparaissent quand un des quatre champs récupère le focus).

Ma question est: peut-on simplement faire en sorte qu'en quittant le
champ4, on revienne au champ1 ? Je sais qu'on peut le faire grâce à
une méthode "deprecated" (je n'ai plus en tête, mais un truc du genre
setNextFocusable), qui marche, mais je n'aime pas utiliser des méthodes
qui me valent un avertissement lors de la compilation...

--
« nous devons agir comme si la chose qui peut-être ne sera pas devait
être » (Kant, Métaphysique des moeurs, doctrine du droit, II conclusion)

Thomas Baruchel <thomas.baruchel@laposte.net>

1 réponse

Avatar
Auge Frederic
Thomas Baruchel wrote:
Bonjour,

j'ai une JFrame avec quatre champs de texte (et d'autres composants dont
tous ont été rendus non "focusable"); donc quand l'utilisateur utilise
la touche TAB, on passe de l'un à l'autre. Or tout se fait en cinq temps:

champ1 -> champ2 -> champ3 -> champ4 -> AUCUN_FOCUS
puis on redevient au point de départ.

Je suppose qu'après le champ4, il n'y a plus de focus, car j'ai créé
(à des fins de déboguage) un FocusListener qui affiche grâce à la
méthode toString() quel composant acqiert le focus, or quand on quitte
le champ4, rien ne s'affiche (alors que des informations ésotériques sur
5/6 lignes apparaissent quand un des quatre champs récupère le focus).

Ma question est: peut-on simplement faire en sorte qu'en quittant le
champ4, on revienne au champ1 ? Je sais qu'on peut le faire grâce à
une méthode "deprecated" (je n'ai plus en tête, mais un truc du genre
setNextFocusable), qui marche, mais je n'aime pas utiliser des méthodes
qui me valent un avertissement lors de la compilation...



Très bonne habitude de ne pas utiliser les méthodes dépréciées, et comme
d'hab, dans la javadoc, on t'indique par quoi la méthode à été remplacé
-> FocusTraversalPolicy