Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 2013
-
4 nov. 2007 à 13:01
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 2013
-
4 nov. 2007 à 19:29
Salut:
Je suis en train de développer un composant pour mon application. Mon problème est comme suit:
Je veux que mon JTextField garde toujours le focus au fûr et à mesure que l'utilisateur saisie des données. Ceci n'est pas garantit parceque je suis en train d'afficher un JPopupMenu de temps en temps pour faire des notifications à l'utilisateur.
J'ai pensé à utiliser un FocusListener, mais ça n'a pas marché.
final JTextField textField = ...;
textField.addFocusListener(new FocusListener() {
public void focusGained(FocusEvent evt) {
}
public void focusLost(FocusEvent evt) {
// Essayer de ramener le focus de nouveau au textfield
textField.requestFocusInWindow();
}
});
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 4 nov. 2007 à 15:42
Salut,
je vois bien la problèmatique mais ne comprend pas trop comment tu en es arrivé là... bref voici un exemple de combo avec auto completion (pas à pas) :
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 4 nov. 2007 à 19:29
Salut:
Le problème vient de la méthode JPopupMenu.show(Component invoker, int x, int y).
J'ai mis l'invoker à null et j'ai fait un changement de repère pour calculer la position absolue du JPopupMenu.
En guise de conclusion, c'est casse-tête. Je pense que je vais me satisafaire avec le lien que tu as fournis.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 4 nov. 2007 à 14:39
Salut:
Je vais te mettre dans le contexte. L'actuel composant queje suis en train de développer est un composant d'auto-complétion.
Lorsque je saisis du texte, un JPopupMenu apparait pour lister toutes les complétions possibles, mais celui ci "vole" le focus du JTextField ce qui empêche de continuer la saisie, la seule solution qui est génante est de placer le curseur à l'aide du curseur.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 4 nov. 2007 à 14:52
Salut:
J'ai testé mon code ligne par ligne surtout les lignes dont j'avais plus de doute et j'étais surpris du fait que le problème est dû à la méthode setPopupSize() de la classe JPopupMenu.
Maintenant je suis devant un autre problème, en effet le JPopupMenu n'a pas la bonne largeur pour être bien ajusté au dessous du JTextField. On dirait que c'est la pénailté à payer.