Java学习使用SWT gridlayout和griddata

时间:2012-12-15 19:21:31

标签: java grid swt alignment grid-layout

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

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

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

我需要创建以下应用:

enter image description here

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

1 个答案:

答案 0 :(得分:4)

以下文章应该为您GridLayout提供一些信息:

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