【问题标题】:spacing issue in gridlayout网格布局中的间距问题
【发布时间】:2014-04-10 13:38:45
【问题描述】:

我在 gridlayout 中遇到了一个小问题。 我在一行中有一个一对一的标签和文本 和下一行的另一个标签。 第二行中的标签具有更长的长度 比第一行中第一个标签中的标签。 现在我想定位文本字段 在靠近 label1 的第一行。自实验室2 具有比 label1 更高的字符 它占用该列 标签的长度2。由于文本字段没有 靠近标签1。是否可以制作文本字段 靠近标签吗?

请在下面找到代码..

package zx.example.hello;

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

    public class GridLayoutExample {

        public static void main(String[] args) {
            Display display = new Display();
            Shell shell = new Shell(display);
            GridLayout gridLayout = new GridLayout();
            gridLayout.numColumns = 2;
            shell.setLayout(gridLayout);

            GridData data1 = new GridData();
            Label label1 = new Label(shell, SWT.PUSH);
            label1.setText("Label1");
            label1.setLayoutData(data1);

            Text text1 = new Text(shell, SWT.BORDER);
            text1.setText("");

            Label label2 = new Label(shell, SWT.PUSH);
            label2.setText("Label 222222222222222222222222222222");
            /*Text text2 = new Text(shell, SWT.BORDER);
            text2.setText("B4");*/

            shell.pack();
            shell.open();

            while (!shell.isDisposed()) {
                if (!display.readAndDispatch())
                    display.sleep();
            }
        }
    }

【问题讨论】:

    标签: java layout swt


    【解决方案1】:

    是的,你可以,添加这一行:

    label2.setLayoutData(new GridData(SWT.BEGINNING, SWT.TOP, true, true, 2, 1));
    

    这将使第二个Label 跨越GridLayout 的两列。

    【讨论】: