据我所知,没有布局,有最大尺寸的设置,这在我看来是一件好事.
请考虑以下szenario:您将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();
}
在调整大小之前:
调整大小后: