2

次のようなダイアログウィンドウを構成しようとしています。

    @Override
protected Control createDialogArea(Composite parent) {


    GridLayout dialogAreaLayout = new GridLayout();
    dialogAreaLayout.numColumns = 2;
    parent.setLayout(dialogAreaLayout);


    GridData gridData = new GridData();
    gridData.grabExcessHorizontalSpace = true;
    gridData.horizontalAlignment = GridData.FILL;
    gridData.minimumWidth = 300;

    // the label in the first row should span across both columns
    gridData.horizontalSpan = 2;

    Label headlineLabel = new Label(parent, SWT.NONE);
    headlineLabel.setText("example test");
    headlineLabel.setLayoutData(gridData);

    // the rest should be ordered in two columns
    gridData.horizontalSpan = 1;

    companyLabel = new Label(parent, SWT.NONE);
    companyLabel("company");

    companyTextfield = new Text(parent, SWT.BORDER);
    companyTextfield(gridData);

..。

私が達成しようとしているのは、最初の行のラベルです。これは、両方の列にまたがり、次のフィールドが1行ごとにペアで並べられています。これで得られるのは、ラベルが2つの列にまたがらないのと同じように、ラベル(2行目に残しておく必要があります)が1行目にあるということです。誰かが、私が間違っていることを見ることができますか?

もう一度ありがとう!

4

1 に答える 1

2

layoutData を headlineLabel に設定した後、 horizo​​ntalSpan を 1 に設定しています。SWT ウィジェットごとに新しい LayoutData オブジェクトを作成する必要があります。設定後の再利用はできません。

于 2012-08-26T08:32:46.903 に答える