addEventHandler到javafx中的TreeItem
问题描述:
我是Java新手,需要帮助。我想在我的TreeView中将事件添加到特定的TreeItem。我有一些代码,它不起作用。我究竟做错了什么?addEventHandler到javafx中的TreeItem
这里是我的代码:
TreeItem<String> item = new TreeItem<>(s);
item.addEventHandler(MouseEvent.MOUSE_PRESSED, new EventHandler<MouseEvent>(){
public void handle(MouseEvent e) {
System.out.println("Hello World");
}
});
this.item.getChildren().add(item);
它创建一个TreeView,但事件不工作。
感谢您的帮助。
答
我认为要处理,如果你点击一个TreeItem
这可以BA如果添加了一个侦听器,以选定的项目解决简单:
treeTable.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
if(newValue != null && newValue != oldValue){
System.out.println("Hello World");
}
});
如果你不熟悉java8的lambda表达式这里是版本与匿名类:
table.getSelectionModel().selectedItemProperty().addListener(new
ChangeListener<TreeItem<TestRow>>() {
@Override public void changed(
ObservableValue<? extends TreeItem<TestRow>> observable,
TreeItem<TestRow> oldValue,
TreeItem<TestRow> newValue) {
if (newValue != null && newValue != oldValue) {
System.out.println("Hello World");
}
}
});
谢谢你的回答。它工作正常! –