首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据要显示的文本在SWT中定义文本的长度?

如何根据要显示的文本在SWT中定义文本的长度?
EN

Stack Overflow用户
提问于 2015-09-29 09:51:24
回答 2查看 1.9K关注 0票数 0

我有一个文本,它将显示不同长度的不同数据。最初,我使用的是一个固定长度的文本框。但是,很明显这不起作用。然后,我试着得到文本的长度,用这个长度作为文本的宽度,像这样-

代码语言:javascript
复制
textName = new Text(composite, SWT.BORDER);
String myText = tree.getSelection()[0].getText();
int length = myText.length();
textName.setBounds(76, 28, length, 21);
textName.setText(myText);

但是,我发现SWT中字符串的长度和文本字段的宽度是非常不同的。那麽,是否有解决办法呢?显然,我可以将更高的值设置为宽度。但是,我认为这不是一个好的解决办法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-29 10:17:56

您可以让Text对象计算其默认大小。

首先设置文本,然后调用computeSize来计算文本字符串的屏幕像素大小:

代码语言:javascript
复制
Text textName = new Text(composite, SWT.BORDER);
String myText = tree.getSelection()[0].getText();
textName.setText(myText);
Point size = textName.computeSize(SWT.DEFAULT, SWT.DEFAULT);
textName.setBounds(76, 28, size.x, 21);
票数 1
EN

Stack Overflow用户

发布于 2015-09-29 10:39:50

可以通过以下方法计算当前字体大小和类型的字符串大小:

代码语言:javascript
复制
GC gc = new GC(textName);
Point textSize = gc.textExtent(myText);
gc.dispose();

textSize给出文本的大小(以像素为单位)。然后,可以确定要设置的文本控件的大小。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32840918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档