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

问题描述 投票:0回答:1

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

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

以下是我的代码片段:

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。

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

java swt eclipse-rcp jface
1个回答
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 - 不要尝试在控件之间共享它们(这同样适用于布局)。

要在第一个位置重新调整对话框,请覆盖qazxsw poi:

isResizable
© www.soinside.com 2019 - 2024. All rights reserved.