我在尝试执行看似简单的任务时遇到问题。 我用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);
但是,这导致文本显示在一行上,隐藏了不适合按钮大小的部分。
有什么想法/解决方法吗?
谢谢您的时间。
答案 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上的输出: