gpt4 book ai didi

java - 如何在 SWT 中添加文本大小

转载 作者:行者123 更新时间:2023-12-01 14:19:00 25 4
gpt4 key购买 nike

我创建了一个默认文本为“数据预览”的标签。

当我尝试将文本 ( 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:

If the receiver has a layout, asks the layout to lay out (that is, set the size and location of) the receiver's children. If the receiver does not have a layout, do nothing.

由于以下原因,这解决了问题:

每次父级布局时,都会确定每个子级的大小。当您第一次添加标签时,父级将启动子级的尺寸计算。当您稍后更改文本时,这不会自动完成,因此您必须告诉父级重新布局。

关于java - 如何在 SWT 中添加文本大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17810971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com