我正在使用 SWT GridLayout 来显示不同的图像,这样的奇迹 - 网格。现在我的问题是,GridLayout 总是有一个固定的列数,比如说 5。有没有办法让 GridLayout 灵活,以便列数根据父组件的大小增加或减少?(例如,当窗口调整大小时)。
我在 GridLayoutConstructor 或 GridData 中找不到选项。RowLayout 不能满足我的需求
您可以在运行时更改布局。
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 );
}
} );