我试图自动换行这个文本,但它没有换行。我正在尝试使用下面的代码,不确定代码有什么问题。这是
protected Control createContents(Composite parent){
Composite composite = new Composite(parent, SWT.WRAP);
composite.setLayout(new GridLayout());
composite.setLayoutData(new GridData(SWT.HORIZONTAL, SWT.TOP, false, false));
Group group = new Group(composite, SWT.NONE);
group.setText("my group");
group.setLayout(new GridLayout(2, false));
group.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));
Button button = new Button(group2,SWT.CHECK);
GridData data = new GridData(SWT.HORIZONTAL, SWT.TOP, false, true, 1, 1);
button.setLayoutData(data);
Label label= new Label(group, SWT.WRAP);
data = new GridData(GridData.FILL_HORIZONTAL);
label.setLayoutData(data);
label.setText("my long text is very long, I need to wrap this very long text lalalalalalalalalalalalalala");
}
最佳答案
复合 Material 的布局数据还需要将 grabExcessHorizontal
空间设置为 true,即:
composite.setLayoutData(new GridData(SWT.NONE, SWT.TOP, true, false));
我认为包装标签及其所有父复合 Material 都需要有它。
顺便说一句,样式位 SWT.WRAP
对于 Composite 类没有意义。
关于java - 如何包装 swt 标签文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32484107/