supprimer de focus par défaut de TextField JavaFX
J'ai conçu des Champs dans un formulaire en SceneBuilder, lorsque j'exécute le code, l'un des TextFields a été cliqué par défaut, je veux quand je lance le code, aucun des objets textfield d'être sélectionné par défaut et l'utilisateur de sélectionner un TextFiled.
Mise à JOUR: Comme vous le voyez dans cette image que je veux faire le premier champ, comme deux autres de champ lorsque le code est exécuté(pas de curseur dans le champ)
Comment puis-je faire cela?
double possible de par programme unfocus un TextField?
non! J'ai déjà essayé cette solution mais pas fonctionné pour moi
il n'y a pas de
Ahh, ma faute, c'est une méthode protégée. Vérifier ma réponse.
non! J'ai déjà essayé cette solution mais pas fonctionné pour moi
setFocus(false)
ne fonctionne pas pour vous?il n'y a pas de
setFocus
fonction pour TextFieldAhh, ma faute, c'est une méthode protégée. Vérifier ma réponse.
OriginalL'auteur Yashar | 2015-03-14
Vous devez vous connecter pour publier un commentaire.
Comme il n'y a pas de méthode pour y parvenir, il n'y a pas de manière directe. Cependant, vous pouvez utiliser une astuce pour le faire. Vous pouvez avoir un
BooleanProperty
juste pour vérifier si la commande est porté pour la première fois. ÉcouterfocusProperty()
de la commande et lorsqu'il est porté pour la première fois, délégué de l'accent de son conteneur. Pour le reste de la focus, il fonctionnera comme il se doit.Exemple:
Sur l'écran initial de charge :
Lors de l'utilisation de JavaFX, vous devez déclarer toutes les variables en tant que propriétés. En outre,
firstTime
est utilisé à l'intérieur d'un lambda qui signifie qu'elle doit être définitive et son état ne peut pas être modifié. Si vous déclarez que boolean, vous ne serez pas en mesure de ré-affecter sa valeur.OriginalL'auteur ItachiUchiha
Dans mon cas, l'on a accepté la réponse n'est pas de travail. Mais cela a fonctionné:
j'ai demandé foyer pour le parent enveloppé dans runLater.
Appel Direct de requestFocuss ne fonctionne pas.
OriginalL'auteur dermoritz
Eu le même problème avec un non - modifiable TextField, qui a été sélectionné et mis en évidence à chaque fois.
Résolu par la mise en myTextField.setFocusTraversable(false);
Noter que dans ce cas, le focus passe à la suivante un élément de l'INTERFACE utilisateur, vous devez définir chaque élément que vous ne voulez pas concentré. Vous perdez également la possibilité de sélectionner l'élément via la touche Tab.
La ApiDoc états qui setFocusTraversable() est false par défaut, mais qui semble ne pas fonctionner, sauf s'il est explicitement appelé.
OriginalL'auteur Helmwag