2013-01-09 55 views
3

在一個JavaFx 2的情況下,我有一個TreeView,它最初在特定的深度摺疊。我打算實現的是,當一個節點被用戶點擊展開時,會發生一個動作來修改該treeitem屬性/值。如何獲取用戶在JavaFx 2中單擊展開的當前TreeItem引用?

問題是我不知道如何引用該treeitem。我在每個treeitem extenedProperty上添加一個監聽器,但是在該ChangeListner方法中,我只能得到舊/新值,不能引用返回發生更改事件的treeitem。

有人可以幫忙嗎?非常感謝。

回答

7

當然可以。試試這個:

treeItem.expandedProperty().addListener(new ChangeListener<Boolean>() { 
    @Override 
    public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) { 
     System.out.println("newValue = " + newValue); 
     BooleanProperty bb = (BooleanProperty) observable; 
     System.out.println("bb.getBean() = " + bb.getBean()); 
     TreeItem t = (TreeItem) bb.getBean(); 
     // Do whatever with t 
    } 
}); 
+0

它的工作正是我需要的。非常感謝。 – Qishan