私は
Composite descComp
いくつかのものが含まれています...基本的には、フォームのコンテナであり、多数のラベル、コンボ、ボタンで構成され、すべて一列に並んでいます。私のフォームは有限ではありません。追加の入力用に1行追加するボタンがあります。しかし、それが機能するためには、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);
私がそれをやめたとき、すべての子供たちのために働く...