如何在不使用宽度提示和高度提示的情况下对齐父复合中的两个合成



我想要一个父组件中的两个复合(一个在另一个下面)。

我的代码是这样的:

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

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

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

网格布局已处理宽度和高度。

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

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

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

最新更新