Comment déclencher l'événement lors d'un double clic sur un nœud de l'arborescence
J'ai ce code qui crée un nouvel onglet dans une région éloignée de la Classe Java.
treeView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<TreeItem<String>>()
{
@Override
public void changed(ObservableValue<? extends TreeItem<String>> observable, TreeItem<String> oldValue, TreeItem<String> newValue)
{
System.out.println("Selected Text : " + newValue.getValue());
//Create New Tab
Tab tabdata = new Tab();
Label tabALabel = new Label("Test");
tabdata.setGraphic(tabALabel);
DataStage.addNewTab(tabdata);
}
});
Pouvez-vous me dire comment je peux modifier le code pour ouvrir un nouvel onglet lorsque je double clic sur un nœud de l'arborescence. Dans mon code l'onglet s'ouvre lorsque je clique une fois. Ce gestionnaire d'événements dont j'ai besoin?
OriginalL'auteur Peter Penzov | 2013-06-27
Vous devez vous connecter pour publier un commentaire.
Vous pouvez ajouter un
EventHandler<MouseEvent>
à laTreeView.setOnMouseClicked()
méthode et de vérifier pour lagetClickCount()
valeur de retour de laMouseEvent
à déterminer si c'était un double-clic. Supprimer laChangeListener
ci-dessus et ajouter la logique de laEventHandler
.L'utilisation de la description et de l'appliquer à votre
treeView
de la variable.Ça va ressembler à quelque chose comme ça. Vous aurez probablement envie de vérifier l'élément de
null
.Que faire si ils développez un nœud avec une autre méthode, comme le clavier? Je suppose que nous avons pour lier plusieurs événements pour le même gestionnaire =/. Semble comme il devrait y avoir un seul gestionnaire pour ce genre de chose. (onNodeActivated ou quelque chose)
Cette réponse a été spécifiques au double-cliquez sur l'action. Si vous voulez déclencher quelque chose hors de tout développer/réduire les cas, alors vous aurez envie de regarder à la
TreeItem<T>.expandedProperty()
. Vous pouvez ajouter unChangeListener
(peut-être par le biais d'unTreeCell<>
usine) et l'ajouter à votre fonctionnalité. L'extraction de la réponse ici: Comment obtenir de l'actuel TreeItem de référence qui est en pleine expansion en clic de l'utilisateur dans JavaFx 2?OriginalL'auteur OttPrime
À mon avis, la meilleure pratique consiste à mettre en œuvre votre cellule.
OriginalL'auteur KerlW