我是Java新手,我需要帮助。我想在TreeView中向特定的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,但该事件不起作用。
感谢您的帮助。
答案 0 :(得分:1)
我认为你想要处理这个问题,如果你点击一个TreeItem
,如果你为所选项添加一个监听器,这可以解决简单问题:
treeTable.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
if(newValue != null && newValue != oldValue){
System.out.println("Hello World");
}
});
如果您不熟悉java8的lambdas,这里是带有匿名类的版本:
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");
}
}
});