2017-06-21 60 views
0

我是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,但事件不工作。

感謝您的幫助。

回答

1

我認爲要處理,如果你點擊一個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

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

相關問題