4

コンポジットの最大サイズを設定する方法はありますか? 私が方法を見つけたものだけ

setMinimumSize(Point point)
setSize(Point point)

これにより、最小サイズと優先サイズを設定できます。

4

2 に答える 2

9

私の知る限り、最大サイズの設定を持つレイアウトはありません。これは私の意見では良いことです。

Widget次のシナリオを考えてみましょう: /の最大サイズをComposite「見栄えが良い」と思われる値に設定します。エンドユーザーの画面解像度とテキスト サイズによっては、選択した最大サイズが正しく表示されない場合があります。これが、レイアウトが通常利用可能なスペースに適応する理由です。


それでも、サイズを制限するコードは次のとおりです。

public static void main(String[] args)
{
    Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("StackOverflow");
    shell.setLayout(new GridLayout(1, false));

    final Button left = new Button(shell, SWT.PUSH);
    left.setText("Restricted width");
    left.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    left.addListener(SWT.Resize, new Listener()
    {
        @Override
        public void handleEvent(Event arg0)
        {
            Point size = left.getSize();

            if(size.x > 200)
            {
                left.setSize(200, size.y);
            }
        }
    });

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

サイズ変更前:

ここに画像の説明を入力

サイズ変更後:

ここに画像の説明を入力

于 2013-08-31T18:14:49.380 に答える