我有一个文本,它将显示不同长度的不同数据。最初,我使用的是一个固定长度的文本框。但是,很明显这不起作用。然后,我试着得到文本的长度,用这个长度作为文本的宽度,像这样-
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中字符串的长度和文本字段的宽度是非常不同的。那麽,是否有解决办法呢?显然,我可以将更高的值设置为宽度。但是,我认为这不是一个好的解决办法。
发布于 2015-09-29 10:17:56
您可以让Text对象计算其默认大小。
首先设置文本,然后调用computeSize来计算文本字符串的屏幕像素大小:
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);发布于 2015-09-29 10:39:50
可以通过以下方法计算当前字体大小和类型的字符串大小:
GC gc = new GC(textName);
Point textSize = gc.textExtent(myText);
gc.dispose();textSize给出文本的大小(以像素为单位)。然后,可以确定要设置的文本控件的大小。
https://stackoverflow.com/questions/32840918
复制相似问题