将文本包裹在 Button 中
Wrap the text inside a Button
我在尝试完成看似简单的任务时遇到了问题。
在 java/swt 中编码 UI,我试图让按钮的文本显示在两行上(包装传递给按钮的字符串),但我无法使用字符串中的回车 return,也不是按钮的 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);
但是,这会导致文本显示在一行中,隐藏了不适合按钮大小的部分。
任何想法/解决方法?
感谢您的宝贵时间。
查看以下代码:
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();
}
}
Windows10 上的输出:
我在尝试完成看似简单的任务时遇到了问题。 在 java/swt 中编码 UI,我试图让按钮的文本显示在两行上(包装传递给按钮的字符串),但我无法使用字符串中的回车 return,也不是按钮的 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);
但是,这会导致文本显示在一行中,隐藏了不适合按钮大小的部分。
任何想法/解决方法?
感谢您的宝贵时间。
查看以下代码:
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();
}
}
Windows10 上的输出: