5

在一个 JavaFx 2 案例中,我有一个 TreeView,它最初在一定深度折叠。我的目标是,当用户单击扩展一个节点时,将发生修改该树项属性/值的操作。

问题是我不确定如何引用该树项。我在每个 treeitem 扩展属性上添加了一个侦听器,但是在那个 ChangeListner 方法中,我只能获取旧/新值,不能引用更改事件起源的 treeitem。

有人可以帮忙吗?非常感谢。

4

1 回答 1

9

是的当然。试试这个:

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
    }
});
于 2013-01-09T15:56:14.727 回答