0

日食では、テーブル、ボタンのテキストフィールドを含むレイアウトがあります。私はそれらを次の場所に作成しました:

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

ユーザーがウィンドウを最大化するまで、すべてが正常に機能します。ウィンドウを最大化した後、フォームのコンテンツは同じ位置に残ります。フォームで絶対値を使用しました。ウィンドウのサイズが変更されたときにサイズを大きくするにはどうすればよいですか? フォームで絶対値を与えるべきではない場合、絶対値を避けてウィンドウサイズに相対的な値を与える方法は?

4

1 に答える 1

0

Layout呼び出しではなくa を使用し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);
于 2013-10-28T11:26:44.030 に答える