![](/img/trans.png)
[英]When I change the text for the button in SWT, the whole button size changes. How can I disable this?
[英]How I can add size to text in SWT
我使用默认文本“数据预览”创建标签。
当我尝试将文本(dnyamic)更改为其他文本时,它仅以“数据预览”的大小显示文本。
我如何控制标签的尺寸?
final Composite previewHeader = new Composite(this.previewPanel, SWT.NULL);
final GridLayout layout = new GridLayout();
layout.numColumns = 2;
layout.marginHeight = 0;
layout.marginWidth = 0;
previewHeader.setLayout(layout);
final GridData headerData = new GridData();
headerData.horizontalAlignment = GridData.FILL;
headerData.grabExcessHorizontalSpace = true;
previewHeader.setLayoutData(headerData);
this.previewLabel = new RichTextLabel(previewHeader, SWT.LEFT);
this.previewLabel.setText("<b>Data Preview:</b>"); //$NON-NLS-1$
final GridData labeldata = new GridData();
labeldata.grabExcessHorizontalSpace = true;
labeldata.verticalAlignment = GridData.VERTICAL_ALIGN_END;
labeldata.verticalSpan = 0;
labeldata.verticalIndent = 0;
this.previewLabel.setLayoutData(labeldata);
您需要在文本的父级上调用layout()
。 这是Composite#layout()
的javadoc:
如果接收方具有布局,则要求该布局对接收方的子级进行布局(即,设置其大小和位置)。 如果接收器没有布局,则什么也不做。
由于以下原因,此问题得以解决:
每个孩子的大小都由父母每次布置时决定。 首次添加标签时,父级将为子级启动尺寸计算。 以后更改文本时,这不会自动完成,因此您必须告诉父级重新布置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.