我想从父母那里删除一个孩子。我试图隐藏它,排除它,摧毁它。什么都没有帮助。或者可以将新的子集添加到父级吗?
答案 0 :(得分:1)
您只需致电child.dispose()
即可从其父级中移除任何控件(包括复合材料)。处理完控件后,不能再使用了。即除isDisposed()
之外的所有方法都会抛出SWTException
。
答案 1 :(得分:1)
您需要在部署控件后重新布局UI:
if(! child.isDisposed()){
child.dispose();
}
paramComposite.layout(true, true);
如果在paramComposite中使用GridLayout,则可以排除单元格:
if(child.getLayoutData() instanceof GridData){
((GridData)child.getLayoutData() ).exclude = true;
}
paramComposite.layout(true, true);
添加新的孩子:
Composite newChild = new Composite(paramComposite , SWT.NON)
paramComposite.layout(true, true);
或更改现有控件的父级:
existingControl.setParent(paramComposite );
existingControl.setLayoutData(existingControlLayoutData);
paramComposite.layout(true, true);