Bouton de feu de onAction avec Entrée en JavaFX
Je suis un débutant de JavaFx. Dans mon application JavaFX. j'ai mis en propriété onAction et il fonctionne très bien lorsque j'appuie sur le bouton à l'aide de la souris. Je veux le feu de la même, même lorsque l'utilisateur appuyez sur Enter sur le bouton. Je sais que je peux utiliser un même gestionnaire pour le faire.
Mais quand j'ai lu le onAction JavaDoc il est dit que cet événement incendie par une pression sur une touche.
Description de la propriété:
L'action du bouton, qui est appelée chaque fois que
le bouton est tiré. Cela peut être dû à l'utilisateur en cliquant sur le
bouton avec la souris, ou par un événement tactile, ou par une pression sur une touche, ou si
le développeur par programme invoque le feu ().
Mais lorsque j'appuie sur la touche Enter rien ne se passe. Est-il erreur dans la documentation? Il n'existe aucun autre moyen d'y parvenir sans l'ajout de alistener le bouton?
P. S
D'après les commentaires que j'ai vérifié avec la touche espace puis il me faire virer. Mais je veux mettre qui à la touche Entrée.
J'ai beaucoup de boutons. J'ai essayé button.setDefaultButton(true);
mais il n'est pas me faire virer. Je pense que c'est becacuse il y a plus d'un bouton. Si je l'ai mis juste pour un bouton unique, il fonctionne très bien. Comment faire pour le mettre à de multiples boutons?
oui. J'ai mis le focus sur la touche avant d'appuyer sur la touche
Est le gestionnaire invoquée lorsque vous appuyez sur Espace, au lieu d'Entrer?
Voir Bouton.defaultButtonProperty()
J'ai une idée que vous devriez tester. btn.defaultButtonProperty().bind(btn.focusedProperty())
OriginalL'auteur Thusitha Thilina Dayaratne | 2014-09-10
Vous devez vous connecter pour publier un commentaire.
Vous pouvez modifier dynamiquement le bouton par défaut de la propriété de l'concentre actuellement sur le bouton en utilisant la liaison
OriginalL'auteur Uluk Biy
Si vous voulez l'appliquer à chaque Bouton dans votre programme, vous pouvez sous-classe JavaFX-Bouton et lier cette dans le constructeur. Dans votre fxml-Fichier vous aurez besoin d'inclure votre Bouton personnalisé.
J'ai écrit cette sous-classe:
Pour utiliser ce Code, vous aurez besoin d'inclure votre classe personnalisée dans le fxml-Fichier:
Si vous souhaitez utiliser la Scène Builder les choses deviennent un peu plus difficile: Vous devez exporter votre Bouton personnalisé dans un bocal de fichier et l'ajouter à la Scène Builder comme décrit ici
OriginalL'auteur Qw3ry
Pourquoi dois-je toujours répondre à trois ans de questions...?! 😉 En tout cas, quelqu'un pourrait trouver utile (moi y compris).
Pour remplacer la touche Entrée appuyez sur le comportement-je utiliser la fonction ci-dessous l'appel à elle dans la scène de la clé de la conférence de presse de filtre:
Basé sur l'événement cible de la fonction fonctionne comme suit. Pour un TextArea ou TableView, c'est un NoOp. Pour un bouton, il consomme de l'Entrée de la conférence de presse des incendies et la touche Espace appuyez et relâchez événements. Et pour tous les autres contrôles, il consomme également de l'Entrée de la conférence de presse des incendies et un Onglet événement s'appuyant sur Enter déplace le focus vers le prochain contrôle comme Onglet.
Alors que vous venez d'enregistrer un filtre d'événement pour l'ensemble de la scène:
Et le filtre d'événement ressemble:
----- edit parce que j'ai oublié d'inclure les isAncestorNodeTargeted fonction (); merci pour le commentaire, Robert -----
Désolé, ma faute. C'est une fonction simple que j'ai oublié de l'inclure. Peut-être il y a une meilleure façon de le faire avec les nouveaux JavaFx versions mais je ne sais pas. J'ai édité la réponse.
OriginalL'auteur tomorrow