如何通过用户在JavaFx 2中单击来获取当前正在扩展的TreeItem引用?

时间:2013-01-09 13:48:30

标签: treeview javafx-2

在一个JavaFx 2案例中,我有一个TreeView,它最初在某个深度折叠。我想要实现的是,当用户点击扩展一个节点时,将发生一个动作来修改该treeitem属性/值。

问题是我不确定如何参考那个树。我在每个treeitem expanedProperty上添加了一个监听器,但是在那个ChangeListner方法中,我只能得到旧的/新的值,不能再参考改变事件起源的treeitem。

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

1 个答案:

答案 0 :(得分:8)

当然可以。试试这个:

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
    }
});