如何在不使用widthHint和heightHint的情况下在父组合中对齐两个合成

问题描述 投票:2回答:3

我想在父组件内部使用两个复合材料(一个在另一个之下)。

这是我的代码的样子:

Composite composite = (Composite) super.createDialogArea(parent);

Composite rowComposite = new Composite(composite, SWT.NONE);
rowComposite.setLayout(new GridLayout(2, false));
GridData gd1 = new GridData(SWT.LEFT, SWT.CENTER, false, false);
gd1.widthHint = 760;
gd1.heightHint = 240;
rowComposite.setLayoutData(gd1);

Composite columnComposite = new Composite(composite, SWT.NONE);
columnComposite .setLayout(new GridLayout(2, false));
GridData gd2 = new GridData(SWT.LEFT, SWT.CENTER, false, false);
gd2.widthHint = 760;
gd2.heightHint = 240;
columnComposite .setLayoutData(gd1);

在这里,我使用widthHintheightHint不推荐使用,因为当用户决定更改系统字体或分辨率时,整个布局将被破坏。

如何在不使用widthHintheightHint的情况下实现相同目标。

java eclipse-plugin swt eclipse-rcp jface
3个回答
3
投票

从合成和更新的网格数据中删除了widthHint和heightHint,如下所示:

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

GridLayout已经处理了宽度和高度。


0
投票

composite.setLayout(new GridLayout(1,true));

将父级布局设置为GridLayout,其中第一个参数是列数,第二个参数是列的宽度是否相等。


-1
投票

我建议你试试WidowBuilder Pro这将帮助你快速建立HMI

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