将文字环绕在按钮内

时间:2019-01-25 18:02:37

标签: java swt

我在尝试执行看似简单的任务时遇到问题。 我用Java / swt编写了一个UI,我试图在两行上显示按钮的文本(将传递给按钮的字符串换行),但是我无法通过字符串中的回车来做到这一点,或按钮的SWT.WRAP样式。

这是我的代码的示例:

Button myButton = new Button(compoCentre, SWT.WRAP);
myButton.setBounds(40, 200, 240, 40);
myButton.setText("A long text, but not so long, just enough);

但是,这导致文本显示在一行上,隐藏了不适合按钮大小的部分。

有什么想法/解决方法吗?

谢谢您的时间。

1 个答案:

答案 0 :(得分:1)

查看以下代码:

public class Sample {
    public static void main(String[] args) {
        Display display = new Display();
        Shell shell = new Shell(display);
        shell.setLayout(new GridLayout(1, false));

        Composite comp = new Composite(shell, SWT.NONE);
        comp.setLayout(new GridLayout(1, false));
        comp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

        Button testButton = new Button(comp, SWT.PUSH | SWT.WRAP);
        testButton.setText("A long text, but not so long, just enough");
        final GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
        layoutData.widthHint = 100;
        testButton.setLayoutData(layoutData);

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

Windows 10上的输出:

Image 2

Image 1