调整对话框大小时如何调整对话框内子项的大小
How to resize children inside a dialog, when dialog is resized
我在对话框中有一个合成。
我想调整对话框的大小,当对话框调整大小时我想相应地更新合成。
如何设置合成的调整大小?
下面是我的代码片段:
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。
请告诉我如何处理这个。
请务必在您创建的 Composite
上调用 setLayout
。
如果您将 GridLayout
用于复合布局,请使用 GridData
指定 SWT.FILL
和“获取额外的 space”:
control.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
将使控件使用所有水平space。
control.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
将使控件在两个方向上都可用space。
注意:您必须为每个控件创建一个新的 GridData
- 不要 尝试在控件之间共享它们(这同样适用于布局)。
首先要使对话框可调整大小覆盖 isResizable
:
@Override
protected boolean isResizable()
{
return true;
}
我在对话框中有一个合成。 我想调整对话框的大小,当对话框调整大小时我想相应地更新合成。
如何设置合成的调整大小?
下面是我的代码片段:
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。
请告诉我如何处理这个。
请务必在您创建的 Composite
上调用 setLayout
。
如果您将 GridLayout
用于复合布局,请使用 GridData
指定 SWT.FILL
和“获取额外的 space”:
control.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
将使控件使用所有水平space。
control.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
将使控件在两个方向上都可用space。
注意:您必须为每个控件创建一个新的 GridData
- 不要 尝试在控件之间共享它们(这同样适用于布局)。
首先要使对话框可调整大小覆盖 isResizable
:
@Override
protected boolean isResizable()
{
return true;
}