requestFocusInWindow et multiple JPanel superpose

Le
willy
Bonjour,

Actuellement, je développe une application en Java
et je rencontre quelques soucis notamment avec le focus
donc voila mon problème:

J'ai une JFrame principale et des JPanel qui lui sont superposés
dans chaque JPanel, j'ai différents JTextField, JButton,
mais c'est principalement des JTextField

J'ai une fonction qui permet de donner le focus à une JTextField:
public static void myRequestFocusInWindow(final JTextField field) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
field.requestFocusInWindow();
}
});
}

Mais j'ai remarqué que quand j'avais que 2 (ou moins) JPanel
superposé(s)
le focus est donné correctement
mais dès lors que j'atteins 3 JPanel, le focus reste sur le JTextField
de la 2e JPanel
ce qui signifie que le focus n'est pas donné correctement.

Malheureusement, je ne peux pas me passer de ces JPanel superposés
donc je souhaiterais savoir comment résoudre ce problème.

J'ai bien une piste mais elle demande confirmation:
- je crains qu'on ne puisse pas empiler les appels à invokeLater de
SwingUtilities

Merci d'avance pour votre aide
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
willy
Le #232527
On 8 déc, 17:49, willy
Bonjour,

Actuellement, je développe une application en Java
et je rencontre quelques soucis notamment avec le focus
donc voila mon problème:

J'ai une JFrame principale et des JPanel qui lui sont superposés
dans chaque JPanel, j'ai différents JTextField, JButton, ...
mais c'est principalement des JTextField

J'ai une fonction qui permet de donner le focus à une JTextField:
public static void myRequestFocusInWindow(final JTextField field) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
field.requestFocusInWindow();
}
});
}

Mais j'ai remarqué que quand j'avais que 2 (ou moins) JPanel
superposé(s)
le focus est donné correctement
mais dès lors que j'atteins 3 JPanel, le focus reste sur le JTextField
de la 2e JPanel
ce qui signifie que le focus n'est pas donné correctement.

Malheureusement, je ne peux pas me passer de ces JPanel superposés
donc je souhaiterais savoir comment résoudre ce problème.

J'ai bien une piste mais elle demande confirmation:
- je crains qu'on ne puisse pas empiler les appels à invokeLater de
SwingUtilities

Merci d'avance pour votre aide



bon ben apparemment personne ne semble connaître l'origine du problème
mais j'ai encore une question concernant toujours ce problème
j'ai constaté que la fonction requestFocusInWindow retourne true
alors que le focus a vsiblement pas marché
donc je voulais savoir comment je peux connaître l'évolution du focus
comme ca je pourrais comparer le retour de requestFocusInWindow
et la véritable évolution du focus
Merci.
Willy

Publicité
Poster une réponse
Anonyme