如何在画布上从左上角开始安排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);
答案 0 :(得分:2)
如果您只想要一列,请使用RowLayout
与SWT.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();
}
看起来像这样:
答案 1 :(得分:0)
SWT.LEFT和SWT.TOP 首先,不应该是相同的或? 第二 与数组 只需循环数组,并为每个值创建一个标签 大小/位置只是(%)100 / TOTAL * KEY (如果KEY从0开始并且最高)