安排标签

时间:2013-12-16 13:58:46

标签: java layout swt

如何在画布上从左上角开始安排Label,依此类推? 如果你能告诉我如何在循环中做到这一点。

我尝试使用GridData,但我认为我不太了解它。

GridData gd = new GridData(SWT.LEFT);
Label lbl = new Label(canvas, SWT.LEFT);
lbl.setText("A: ");
lbl.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
lbl.setLayoutData(gd);
Label lbl2 = new Label(c,SWT.TOP);
lbl.setText("B: ");
lbl.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
lbl2.setLayoutData(gd);

2 个答案:

答案 0 :(得分:2)

如果您只想要一列,请使用RowLayoutSWT.VERTICAL

public static void main(String[] args)
{
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setLayout(new RowLayout(SWT.VERTICAL));
    shell.setText("StackOverflow");

    for(int i = 0; i < 10; i++)
    {
        new Label(shell, SWT.NONE).setText("Label " + i);
    }

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

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

    display.dispose();
}

看起来像这样:

enter image description here

答案 1 :(得分:0)

SWT.LEFT和SWT.TOP  首先,不应该是相同的或?  第二  与数组  只需循环数组,并为每个值创建一个标签  大小/位置只是(%)100 / TOTAL * KEY (如果KEY从0开始并且最高)