我有一个
Composite descComp
里面有一些东西......基本上它是一个表单的容器,由许多标签、组合和按钮组成,所有这些都排成一行。我的表单不是有限的,我有一个按钮,可以添加一行额外的输入。然而,为了让它工作,我必须处理我的 descComp 的老孩子......
private void populateConstantMain(ContentData tariffConstantsOfType, Composite descComp,GridLayout descCompLayout, Boolean resize) {
int arraySize;
if (resize == false) {
arraySize = tariffConstantsOfType.getQueryRowCount();
} else {
for (int i = 0 ; i < descComp.getChildren().length; i++) {
System.out.println("Disposing: " + i + " " + descComp.getChildren()[i].toString());
//descComp.getChildren()[i].setEnabled(false);
descComp.getChildren()[i].dispose();
}
arraySize = tariffConstantsOfType.getQueryRowCount() + 1;
}
......
}
由于某些原因
descComp.getChildren()[i].dispose();
不起作用,这意味着它不会处理所有孩子,这会导致插入新孩子时出错,从而破坏布局:/有趣的是
descComp.getChildren()[i].setEnabled(false);
工作,当我取消它,为所有孩子...