我理解并可以使用 FormLayout、FormData、FormAttachment,但我无法理解 GridLayout、GridData 是如何工作的。我想学习使用 GridLayout 和 GridData,因为它更像是一个表格,它有一个结构并且不依赖于其他小部件。
我当时是一名 Web 开发人员(前端、后端),我迷失在 Java“网格”结构中。我应该如何在单元格内对齐、移动小部件(水平/垂直排列、水平/垂直缩进)?就像在 HTML/CSS 中一样:边距、填充等。例如:从左侧移动一个 block 100px。 (margin-left: 100px),但是在 Java 中?
当我作为一名 Web 开发人员时,我创建了一个页面(这里是 Java 的 View ),我知道如何组织父级和 block 。我可以将 Composite 与 div 进行比较,就像 HTML/CSS 中的 block 元素一样吗?
我需要创建以下应用程序:
我需要使用 4 种复合 Material 吗?
最佳答案
下面的文章应该可以帮助您了解 GridLayout
:
要实现类似您在那里的形式的东西,您需要这样的东西:
shell.setLayout(new GridLayout(3, false));
Label title = new Label(shell, SWT.NONE);
title.setText("My first text editor");
GridData data = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
data.horizontalSpan = 3;
title.setLayoutData(data);
Label select = new Label(shell, SWT.NONE);
select.setText("Select a file:");
data = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
select.setLayoutData(data);
Text text = new Text(shell, SWT.BORDER);
data = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
text.setLayoutData(data);
Button button = new Button(shell, SWT.PUSH);
button.setText("Browse...");
data = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
button.setLayoutData(data);
List result = new List(shell, SWT.BORDER);
data = new GridData(SWT.FILL, SWT.FILL, true, true);
data.horizontalSpan = 3;
result.setLayoutData(data);
GridData
用于定义布局内组件的行为。您可以定义垂直/水平对齐方式、边距等。 horizontalSpan
用于告诉布局小部件将覆盖多少列。
关于Java学习使用SWT gridlayout和griddata,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13895372/