有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在javafx中向TreeItem添加了一个addEventHandler

我是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);

它创建了一个树状视图,但该事件不起作用

谢谢你的帮助


共 (1) 个答案

  1. # 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");
                }
            }
    });