如何在 SWT 中从父复合中删除子复合

  • 本文关键字:复合 删除 SWT java swt
  • 更新时间 :
  • 英文 :


我想从其父级中删除一个孩子。我试图隐形它,排除它,摧毁它。没有任何帮助。或者是否可以将新的一组子项添加到父级?

您需要在释放控件后重新布局 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);

只需调用 child.dispose() 即可从其父控件中删除任何控件(包括复合控件(。释放控件后,不能再使用它。即除isDisposed()之外的所有方法都会抛出SWTException

最新更新