我想在父组件中包含两个复合(一个在另一个之下)。
这就是我的代码的样子:
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);
在这里,我使用的是widthHint
和heightHint
,因为当用户决定更改系统字体或分辨率时,整个布局都会被破坏。
如何在不使用widthHint
和heightHint
的情况下实现相同目标。
答案 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