gpt4 book ai didi

java - 关于WindowBuilder SWT java gui构建的一些问题

转载 作者:行者123 更新时间:2023-12-02 10:54:20 25 4
gpt4 key购买 nike

我正在尝试学习 WindowBuilder SWT,但我无法找到好的示例或好的教程,这些示例或教程具有关于如何正确执行 GUI 的真实解释,例如所有组件都位于 shell 中间的中心。

我可以找到一些 super 简单的教程,您只能看到 windowbuilder 的组件和部分以及类似 hello world 的项目。

我只发现您可以使用网格布局并制作一个标签来填充所有宽度和高度,然后将其居中,但这不是我想要实现的行为。

我希望这组组件位于屏幕中央而不填满屏幕。我的意思是,当用户最大化屏幕时,组件不得变大。

在 Android 中这非常简单,您只需将一个 Layout 放入一个 Layout 中,并且在父布局中您只需将其内容居中即可。但在这里我找不到这样做的方法。即使我也找不到将布局放入布局的方法。所以我不明白如何做很酷的 GUI。这些是我的问题:

  1. 即使 shell 最大化,我如何才能将一组组件(例如登录面板)置于 shell 的中心?

  2. 可以将布局放入布局中吗?如果没有,那么我怎样才能制作出复杂而漂亮的 GUI?

  3. 是否有一个存储库可以让我下载使用 WindowBuilder SWT 完成的复杂或漂亮的 GUI 的示例代码?

最佳答案

这是一个简单的 SWT 应用程序,在 shell 中显示居中的控件。它是一个以壳为中心的内部复合 Material 。

  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();
}

我使用了 GridDataFactoryGridLayoutFactory 而不是 GridLayoutGridData 因为我认为它们更容易一些了解。

关于java - 关于WindowBuilder SWT java gui构建的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51891507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com