簡體   English   中英

如何從swt的父復合中刪除子復合?

[英]how to remove a child composite from parent composite in swt?

我想從其父母那里刪除一個孩子。 我試圖使其看不見,排除,銷毀。 沒有任何幫助。 還是可以向父母添加新的孩子集?

您可以簡單地調用child.dispose()以便從其父級中刪除任何控件(包括復合控件)。 處置控件后,將無法再使用它。 即,除isDisposed()之外的所有方法都將拋出SWTException

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM