调整对话框大小时如何调整对话框中子级的大小

时间:2018-09-04 13:43:13

标签: java swt eclipse-rcp jface

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

我还如何设置复合材料的大小?

下面是我的代码段:

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);

我在此Composite内有一个TableViewer。

请让我知道如何处理。

1 个答案:

答案 0 :(得分:1)

请务必在创建的每个 setLayout上致电Composite

如果您使用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;
}