如何获取到treeTable的generatedColumn中添加的组件

我在treeTable中使用addGeneratedColumn生成了一个属性列,列的内容是vbox,内部包括label和textField两个组件,默认label是显示的,textField是隐藏的,现在我让label隐藏,textField显示,也就是让这个列进入编辑状态,请问有什么方法可以取到这个label和textField吗?

在什么情况下触发编辑呢?

有两种情况会触发,一种是点击某个按钮,这个时候是所有列都展示可以编辑的状态,另外一种就是双击某个单元格,这个时候就只有一个单元格会展示可编辑状态

说错了,第一种不是所有列,是一列中的所有单元格

没有办法直接取到,但是可以保存在类中,示例:

@Inject
private TreeTable<TestEntityOne> testEntityOnesTable;
@Inject
private UiComponents uiComponents;

private Map<UUID, Label<String>> labelMap = new Hashtable<>();

@Subscribe
public void onInit(InitEvent event) {
    testEntityOnesTable.addGeneratedColumn("color", entity -> {
        Label<String> colorLabel = uiComponents.create(Label.TYPE_STRING);

        if (entity.getParent() != null) {
            colorLabel.setValue("hasParent");
        }
        labelMap.put(entity.getId(),colorLabel);

        return colorLabel;
    });
}

@Subscribe("testEntityOnesTable")
public void onTestEntityOnesTableSelection(Table.SelectionEvent<TestEntityOne> event) {
    Set<TestEntityOne> selected = event.getSelected();

    for (TestEntityOne testEntityOne : selected) {
        labelMap.get(testEntityOne.getId()).setValue("Selected");
    }

}

好的,谢谢回复