2

我了解并且可以使用 FormLayout、FormData、FormAttachment,但我不明白 GridLayout、GridData 是如何工作的。我想学习使用 GridLayout 和 GridData,因为它更像一个表格,它有一个结构并且不依赖于其他小部件。

我是一名 Web 开发人员(前端、后端),我迷失在 Java“网格”结构中。我应该如何对齐,在单元格内移动小部件(水平/垂直 Aling,hor./vert. Indent)?就像在 HTML/CSS 中一样:边距、填充等。例如:将块从左侧移动 100 像素。(margin-left: 100px),但是在 Java 中?

当我作为 Web 开发人员工作时,我创建了一个页面(这里是 Java 视图),我知道如何组织父级和块。我可以将 Composite 与 div 进行比较,例如 HTML/CSS 中的块元素吗?

我需要创建以下应用程序:

在此处输入图像描述

我需要使用 4 个复合材料吗?

4

1 回答 1

4

以下文章应该GridLayout为您提供一些启示:

了解 SWT 中的布局

要实现类似于您在那里的形式,您需要这样的东西:

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用于告诉布局小部件将覆盖多少列。

于 2012-12-15T21:48:11.357 回答