简体   繁体   English

Javafx TreeView侦听器

[英]Javafx TreeView listener

I have a TreeView in my application and I want to add a listener to get the item that is selected. 我的应用程序中有一个TreeView,我想添加一个侦听器以获取选定的项目。 I currently have: 我目前有:

treeView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {

            @Override
            public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {

            }           
        });

Error received: The method addListener(ChangeListener<? super TreeItem<String>>) in the type ObservableValue<TreeItem<String>> is not applicable for the arguments (new ChangeListener<String>(){}) 收到错误: The method addListener(ChangeListener<? super TreeItem<String>>) in the type ObservableValue<TreeItem<String>> is not applicable for the arguments (new ChangeListener<String>(){})

What is the correct way to add a listener to a TreeView in javafx? 在javafx中将侦听器添加到TreeView的正确方法是什么?

It is being declared as TreeView<String> treeView = new TreeView<String>(object); 它被声明为TreeView<String> treeView = new TreeView<String>(object);

The way I was able to fix this issue was by turning it into a lambda expression like this: 我能够解决此问题的方法是将其变成如下所示的lambda表达式:

treeView.getSelectionModel().selectedItemProperty().addListener((v, oldValue, newValue) -> { 
// Body would go here

});

I don't know why my first method did not work but this does work. 我不知道为什么我的第一种方法不起作用,但这确实起作用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM