2016-09-06 2 views
1

В принципе, у меня есть TreeViewMouseEvent Listeners/EventTypes для элементов дерева

TreeView<String> treeView = new TreeView<String>(); 

Корень

TreeItem<String> root = new TreeItem<String>(); 
treeView.setRoot(root); 

И, наконец, элемент внутри корня

TreeItem<String> item1 = new TreeItem<String>(); 
root.getChildren().add(item1); 

(с или без более братья и сестры или добавление большего количества детей в item1) И что я хочу сделать, это добавить lis tener или EventHandler специально для item1 (и любых братьев и сестер), поэтому, когда пользователь дважды нажимает на него или меняет его значение, что-то происходит. Я также хочу знать, есть ли какие-либо из них, которые отображают oldValue и newValue TreeItem, когда они редактируются.

только приводит меня действительно есть то, что это, вероятно, связано с использованием:

root.getChildren().addListeners()... 
treeView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener... 

или

item1.addEventHandler(... 

Любая помощь очень ценится!

ответ

2

Я также хочу знать, есть ли какие-либо из них, которые отображают oldValue и newValue TreeItem, когда они редактируются.

Вы просто ищете

item1.valueProperty().addListener((obs, oldValue, newValue) -> { 
    // do whatever you need with oldValue and newValue 
}); 

?

+0

Да! Спасибо! Теперь мне просто интересно, есть ли что-то еще для двойного щелчка на TreeItem. –

+0

Для этого вам необходимо использовать фабрику ячеек и зарегистрировать прослушиватель с ячейкой. –

+0

Хорошо, я это рассмотрю! –

Смежные вопросы