Событие выбора элемента дерева в javafx2
Я создал treeview в javafx2. Мне нужно написать событие для получения щелчка node name.
PLS, дайте мне знать, как это сделать?
Ответы
Ответ 1
используйте ChangeListener.
Пример кода:
treeView.getSelectionModel().selectedItemProperty().addListener( new ChangeListener() {
@Override
public void changed(ObservableValue observable, Object oldValue,
Object newValue) {
TreeItem<String> selectedItem = (TreeItem<String>) newValue;
System.out.println("Selected Text : " + selectedItem.getValue());
// do what ever you want
}
});
Ответ 2
слегка обновленная версия
treeView.getSelectionModel().selectedItemProperty()
.addListener(new ChangeListener<TreeItem<String>>() {
@Override
public void changed(
ObservableValue<? extends TreeItem<String>> observable,
TreeItem<String> old_val, TreeItem<String> new_val) {
TreeItem<String> selectedItem = new_val;
System.out.println("Selected Text : " + selectedItem.getValue());
// do what ever you want
}
});
Ответ 3
Немного более обновленная версия, использующая lambdas, которая немного очищает ее:
treeView.getSelectionModel()
.selectedItemProperty()
.addListener((observable, oldValue, newValue) -> System.out.println("Selected Text : " + newValue.getValue()));