我有一个视图,其中显示元素,具体取决于先前的选择。dispose() 和 parent.layout() 确实按预期摆脱了元素。问题是,我如何让他们回来?我想, dispose() 不会删除一个元素,只是将它从元素列表中取出来呈现。那么,我怎样才能找回一个呢?
提前谢谢,马库斯
编辑:
刚刚发现, dispose() 释放对象并递归地释放它的孩子,所以我必须重新创建它们,一旦我将它们处理掉?如果是这样,我怎样才能在例如 GridLayout 中找到位置?
编辑(2):
根据下面的答案,我试过这个:
public class TestTab extends Composite
{
org.eclipse.swt.layout.GridLayout layout = null;
GridData griddata = null;
Button upperButton = null;
Text textInTheMiddle = null;
Button lowerButton = null;
public InvoiceTab(Composite parent, int arg2) {
super(parent, arg2);
final Composite myParent = parent;
layout = new org.eclipse.swt.layout.GridLayout(GridData.FILL_BOTH,
false);
layout.numColumns = 1;
this.setLayout(layout);
upperButton = new Button(this, SWT.PUSH);
upperButton.setText("upper Button");
textInTheMiddle = new Text(this, SWT.BORDER);
lowerButton = new Button(this, SWT.PUSH);
lowerButton.setText("lower Button");
upperButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
if (textInTheMiddle.isVisible()) {
textInTheMiddle.setVisible(false);
lowerButton.moveBelow(upperButton);
} else {
textInTheMiddle.setVisible(true);
lowerButton.moveBelow(textInTheMiddle);
}
myParent.layout();
}
});
}
}
文本字段按预期显示,但下部按钮没有改变位置?再次感谢任何想法......