在eclipse中,我有一个包含表格,按钮文本字段的布局。我在:
中创建了它们public class NewForm extends FormPage{
@Override
protected void createFormContent(final IManagedForm managedForm) {
FormToolkit ftk= managedForm.getToolkit();
ScrolledForm scrldfrm = managedForm.getForm();
scrldfrm.getBody().setLayout(null);
scrldfrm.setText("Hello there!");
Section section = managedForm.getToolkit().createSection(
managedForm.getForm().getBody(),
Section.TWISTIE | Section.TITLE_BAR);
section.setBounds(522, 10, 374, 21);
managedForm.getToolkit().paintBordersFor(section);
section.setText("Selected API");
section.setExpanded(true);
textName = new Text(managedForm.getForm().getBody(), SWT.BORDER);
textName.setBounds(610, 67, 275, 21);
managedForm.getToolkit().adapt(textName, true, true);
textName.setEnabled(false);
//similarly table is added.
}
}
在用户最大化窗口之前,一切正常。最大化窗口后,表单内容保持在同一位置,我在表单中使用了绝对值。如何在窗口重新调整大小时增加大小?如果我不应该在表格中给出绝对值,那么如何避免绝对值并给出相对于窗口大小的值?
答案 0 :(得分:0)
使用Layout
而不是setBounds
来电。 GridLayout
是一种可能性或FormLayout
。
类似的东西:
ScrolledForm scrldfrm = managedForm.getForm();
scrldfrm.getBody().setLayout(new GridLayout());
scrldfrm.setText("Hello there!");
Section section = managedForm.getToolkit().createSection(
managedForm.getForm().getBody(),
Section.TWISTIE | Section.TITLE_BAR);
section.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
managedForm.getToolkit().paintBordersFor(section);
section.setText("Selected API");
section.setExpanded(true);
textName = new Text(managedForm.getForm().getBody(), SWT.BORDER);
textName.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false);
managedForm.getToolkit().adapt(textName, true, true);
textName.setEnabled(false);