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

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

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

最佳答案

是的当然。试试这个:

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

关于treeview - 如何获得JavaFx 2中用户单击扩展的当前TreeItem引用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14236666/

10-11 00:42