コンボボックス列を持つテーブルがあり、コンボボックスの valueChange リスナーで別の列を生成します。すべて問題ないと思います.2番目の列が追加されましたが、コンボボックスの値が失われ、リセットされました. 私が理解しているように、generateCell 関数は 2 回実行されます。私たちを手伝ってくれますか?以下の私のコードを見ることができます:
getTable().addGeneratedColumn("action", new Table.ColumnGenerator() {
@Override
public Object generateCell(Table source, Object itemId, Object columnId) {
ComboBox comboBox = new ComboBox();
comboBox.addListener(new Property.ValueChangeListener() {
@Override
public void valueChange(Property.ValueChangeEvent event) {
taskTable.getTable().addGeneratedColumn("rejectReason",
new Table.ColumnGenerator() {
@Override
public Object generateCell(final Table source1, final Object itemId1, Object columnId1) {
ComboBox comboBox1 = new ComboBox();
comboBox1.select((comboBox1.getContainerDataSource()).firstItemId());
return comboBox1;
}
}
);
}
});
return comboBox;
}
});