1

私はいくつかの s を含むページを持っていますGroup。グループには、異なるテキストのラベルをいくつか配置しました。すべてのグループを同じサイズにしたい。どうすればいいですか?(機能を試しましたsetSizeが、うまくいきませんでした)。

4

1 に答える 1

6

次のコードはあなたが望むことをします。トリックは2つの部分で構成されています。

  • 同じ幅:親(この例ではShell)は、GridLayout各列の幅が同じであるaを使用します
  • 同じ高さ:親(の)の高さ全体を占めるGridDataようにそれぞれに指示するために使用します。GroupShell

public class StackExample
{
    public static void main(String[] args)
    {
        Display display = Display.getDefault();
        final Shell shell = new Shell(display);
        shell.setLayout(new GridLayout(3, true));
        shell.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

        for(int i = 0; i < 3; i++)
        {
            createGroup(shell, i);
        }

        shell.pack();
        shell.open();
        while (!shell.isDisposed())
        {
            if (!display.readAndDispatch())
                display.sleep();
        }
        display.dispose();
    }

    private static void createGroup(Shell parent, int index)
    {
        Group group = new Group(parent, SWT.NONE);
        group.setText("Group " + index);
        group.setLayout(new GridLayout(1, false));
        group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

        for(int i = 0; i < index + 1; i++)
        {
            String text = "";
            for(int j = 0; j < index + 1; j++)
            {
                text += "text";
            }

            Label label = new Label(group, SWT.NONE);
            label.setText(text);
            label.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
        }
    }
}

これが2つのスクリーンショットです:

最小サイズ:

ここに画像の説明を入力してください

ウィンドウサイズを大きくする場合:

ここに画像の説明を入力してください

于 2012-11-25T10:54:14.663 に答える