当用户最大化窗口时,在eclipse中增加表单的大小

时间:2013-10-28 09:32:58

标签: java eclipse swt

在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.
    }
}

在用户最大化窗口之前,一切正常。最大化窗口后,表单内容保持在同一位置,我在表单中使用了绝对值。如何在窗口重新调整大小时增加大小?如果我不应该在表格中给出绝对值,那么如何避免绝对值并给出相对于窗口大小的值?

1 个答案:

答案 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);