我正在尝试学习WindowBuilder SWT,但是我在找到关于如何正确的GUI的真实解释时找到好样本或好教程时遇到了问题,例如所有组件都集中在shell的中间。
我可以找到一些超级简单的教程,你只能看到windowbuilder的组件和部件以及一个hello world类似的项目。
我只发现你可以使用gridlayout并制作一个标签来填充所有的宽度和高度然后它居中,但这不是我想要实现的行为。
我希望这组组件在屏幕上居中而不会填满屏幕。我的意思是当用户最大化屏幕时,组件不能变大。
在Android中,这非常简单,您只需要在布局中放置布局,而在父布局中,您必须简单地将其内容放在中心。但在这里我找不到办法。即使我找不到在布局中放置布局的方法。所以我无法理解如何做酷炫的GUI。这些是我的问题:
感谢你们
这是一个简单的SWT应用程序,它在shell中显示居中的控件。它是以壳为中心的内部复合材料。
public static void main(final String [] args)
{
Display.setAppName("Stackoverflow");
Display display = new Display();
Shell shell = new Shell(display, SWT.SHELL_TRIM);
shell.setText("Stack Overflow");
shell.setSize(1000, 800);
shell.setLayout(GridLayoutFactory.swtDefaults().create());
Composite inner = new Composite(shell, SWT.BORDER);
inner.setLayoutData(GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.CENTER).grab(true, true).create());
inner.setLayout(GridLayoutFactory.swtDefaults().create());
Text text = new Text(inner, SWT.LEAD);
text.setLayoutData(GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).hint(200, SWT.DEFAULT).create());
Button button = new Button(inner, SWT.PUSH);
button.setText("Login");
button.setLayoutData(GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.CENTER).create());
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
我使用GridDataFactory
和GridLayoutFactory
而不是GridLayout
和GridData
因为我认为它们稍微容易理解。
Windowbuilder是一个非常强大的工具,但是当您不熟悉GUI设计时,您应该花时间阅读手册。请谷歌搜索“WindowBuilder用户指南”,你会找到手册。