繁体   English   中英

如何在SWT中为文本添加大小

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM