1

我正在使用 SWT GridLayout 来显示不同的图像,这样的奇迹 - 网格。现在我的问题是,GridLayout 总是有一个固定的列数,比如说 5。有没有办法让 GridLayout 灵活,以便列数根据父组件的大小增加或减少?(例如,当窗口调整大小时)。

我在 GridLayoutConstructor 或 GridData 中找不到选项。RowLayout 不能满足我的需求

4

1 回答 1

1

您可以在运行时更改布局。

GridLayout当父组件的大小发生变化时,更改其numColumns属性并调用layout(true)父组件。

final Shell shell = new Shell();

final GridLayout layout = new GridLayout( 3, true );
shell.setLayout( layout );

shell.addControlListener( new ControlAdapter() {
    @Override
    public void controlResized( ControlEvent event ) {
        int newColumnNumber = 5; // Calculate your new value here.
        layout.numColumns = newColumnNumber;
        shell.layout( true );
    }
} );
于 2013-06-07T12:18:02.347 回答