【问题标题】:Java learn using SWT gridlayout and griddataJava学习使用SWT gridlayout和griddata
【发布时间】:2012-12-03 10:33:25
【问题描述】:

我了解并且可以使用 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 个复合材料吗?

【问题讨论】:

    标签: java grid swt alignment grid-layout


    【解决方案1】:

    以下文章应该会为您阐明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 用于告诉布局小部件将覆盖多少列。

    【讨论】:

    • 您是否可能忘记了答案中的保存按钮?
    • @aldr 很可能,是的。但是,我认为 OP 确实理解布局的概念。
    • 没什么大不了的,这只是一个观察,让后代不要想知道为什么它会丢失:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    相关资源
    最近更新 更多