如何让RowLayout包装其内容?

时间:2014-07-26 07:55:45

标签: java layout swt

我正在使用RowLayout来获取图片的缩略图。所有缩略图仅显示在一行中。如何在调整大小时使它们在多行中有效显示?

1 个答案:

答案 0 :(得分:1)

您可以在RowLayout的文档中轻松找到它。

您正在寻找的是RowLayout#wrap

  

wrap指定如果当前行上没有足够的空间,是否将控件包装到下一行。 默认值为true

由于默认值为true,因此它应该已经包装...

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

    RowLayout layout = new RowLayout();
    layout.wrap = true;
    shell.setLayout(layout);

    Image image = new Image(display, "star.png");

    for(int i = 0; i < 10; i++)
        new Label(shell, SWT.NONE).setImage(image);

    shell.pack();
    shell.setSize(200, 100);
    shell.open();

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

    image.dispose();
}

在调整大小之前看起来像这样:

enter image description here

调整大小后:

enter image description here