调整对话框大小时,如何在对话框中调整子项的大小



我在对话框中有一个复合。 我想调整对话框的大小,当对话框调整大小时,我想相应地更新复合。

如何同时设置复合的大小调整?

以下是我的代码片段:

protected Control createDialogArea(Composite parent) {
Composite container = (Composite) super.createDialogArea(parent);
final GridLayout gridLayout = new GridLayout();
container.setLayout(gridLayout);
final Composite composite = new Composite(container, SWT.NONE);
final GridData gridData = new GridData(GridData.FILL, GridData.FILL, false, 
false);
gridData.heightHint = 300;
gridData.widthHint = 600;
composite.setLayoutData(gridData);

我在这个复合体中有一个TableViewer。

请让我知道如何处理这个问题。

请务必在您创建的Composite上调用setLayout

如果您将GridLayout用于复合使用GridData,该指定SWT.FILL和"获取额外空间":

control.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

将使控件使用所有水平空间。

control.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

将使控件在两个方向上占用所有可用空间。

注意: 必须为每个控件创建一个新GridData-不要尝试在控件之间共享它们(这同样适用于布局(。

要首先使对话框可调整大小,请覆盖isResizable

@Override
protected boolean isResizable()
{
return true;
}

最新更新