SWT中的RowLayout在字体基线上垂直对齐

时间:2014-01-10 12:31:11

标签: java fonts swt

SWT的RowLayout可以用于此目的,但是我想在包含文本的所有小部件的字体基线上进行垂直对齐。

是否可以使用现成的自定义布局?

Snippet204.java可能有实现它所需要的东西,但我只是想问一下之前是否已经完成它。找不到它,但这似乎是一个典型的要求。

在屏幕截图的顶部,有行布局,下面是我手动安排到基线的固定布局(WindowBuilder已对此进行了捕捉)。

demo screenshot

1 个答案:

答案 0 :(得分:7)

RowLayout有一个名为center的字段。只需将其设置为true,就可以了。

  

center指定行中的控件是应该在每个单元格中垂直居中以用于水平布局,还是在每个单元格中水平居中以用于垂直布局。默认值为false

public static void main(String[] args)
{
    Display display = new Display();
    Shell shell = new Shell(display);

    RowLayout layout = new RowLayout();
    layout.center = true;

    shell.setLayout(layout);
    shell.setText("StackOverflow");

    new Label(shell, SWT.NONE).setText("Label");
    new Button(shell, SWT.PUSH).setText("Button");

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

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

    display.dispose();
}