This question already has answers here:
Javafx Treeview item action event
(3个答案)
2年前关闭。
我是Java新手,需要帮助。我想将事件添加到TreeView中的特定TreeItem。我有一些代码,它不起作用。我究竟做错了什么?
这是我的代码:
它创建一个TreeView,但是该事件不起作用。
谢谢你的帮助。
如果您不熟悉java8的lambda,则这里是带有匿名类的版本:
(3个答案)
2年前关闭。
我是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,但是该事件不起作用。
谢谢你的帮助。
最佳答案
我认为您要解决的问题是,如果单击TreeItem
,则可以在将侦听器添加到所选项目的情况下解决该问题:
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");
}
}
});
关于java - java.fx中的TreeItem的addEventHandler ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44670830/
10-11 00:31