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

时间:2013-12-23 10:58:06

标签: java eclipse-plugin swt eclipse-rcp jface

我想在父组件中包含两个复合(一个在另一个之下)。

这就是我的代码的样子:

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的情况下实现相同目标。

3 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:-1)

我建议你试试WidowBuilder Pro 这将有助于您快速构建HMI