如何右对齐 Java SWT 应用程序中的复选框

How do I right align the check box in my Java SWT application

如何右对齐 Java SWT 应用程序中的复选框?这是我的代码片段:

    Button checkFullECR = new Button(scrolledForm.getBody(), SWT.CHECK);
    checkFullECR.setAlignment(SWT.RIGHT);
    checkFullECR.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
    checkFullECR.setText("I need the complete ECR/ECN Process:");

看起来像这样:

[ ] I need the complete ECR/ECN Process:

我希望它看起来像:

I need the complete ECR/ECN Process:       [ ]

您不能仅使用 Button 控件来执行此操作,您需要使用 Label 文本和复选框 Button,两列中没有文本.

类似于:

Composite body = new Composite(parent, SWT.NONE);

body.setLayout(new GridLayout(2, false));

Label label = new Label(body, SWT.LEFT);
label.setText("I need the complete ECR/ECN Process:");

Button checkFullECR = new Button(body, SWT.CHECK);

... more label / button pairs ....

这一次我有点不同意格雷格的观点。

您可以使用 ButtonsetOrientation(int) 方法来强制从右到左布局:

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

    Button button = new Button(shell, SWT.CHECK);
    button.setText("TEST");

    button = new Button(shell, SWT.CHECK);
    button.setOrientation(SWT.RIGHT_TO_LEFT);
    button.setText("TEST");

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

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

    display.dispose();
}

看起来像这样:

(在 Linux Mint 和 Windows 上测试。不适用于 Mac。)