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"); 
      } 
     } 
}); 
+0

谢谢你的回答。它工作正常! –