SWT:获取字符串实际宽度

简介: 由于SWT取用的是系统文字size,有个简单方式可以获取一整段包含中文\英文\数字\特殊字符的字符串宽度。 即是利用Label的computeSize方法,我们知道Label的大小可以随着内容文字伸缩,即可以推断,Label可以拿到准确的文字宽度。

由于SWT取用的是系统文字size,有个简单方式可以获取一整段包含中文\英文\数字\特殊字符的字符串宽度。

即是利用Label的computeSize方法,我们知道Label的大小可以随着内容文字伸缩,即可以推断,Label可以拿到准确的文字宽度。

代码如下:

 

package galaxy.ide.common.gef.util;

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;

/**
 * @author caiyu
 * @date 2016-5-16
 */
public class FontTool {

	private static FontTool instance;

	private FontTool() {
	};

	public static FontTool getInstance() {
		if (instance == null)
			synchronized (Object.class) {
				if (instance == null)
					instance = new FontTool();
			}
		return instance;
	}

	public int getWidth(String t, Font font) {
		Label text = new Label(Display.getCurrent().getActiveShell(), SWT.NONE);
		text.setText(t);
		int width = text.computeSize(SWT.DEFAULT, SWT.DEFAULT).x;
		text.dispose();
		return width;
	}

}

 

目录
相关文章
|
Android开发
Android shape左边框、上下边框、任意边框
Android shape左边框、上下边框、任意边框
465 0
Android shape左边框、上下边框、任意边框
|
Android开发
Android 修改EditView输入框的光标颜色、下划线颜色
Android 修改EditView输入框的光标颜色、下划线颜色
621 0
Android 修改EditView输入框的光标颜色、下划线颜色
从源码角度来理解TabLayout设置下划线宽度问题
从源码角度来理解TabLayout设置下划线宽度问题
93 0
从源码角度来理解TabLayout设置下划线宽度问题
|
小程序
小程序去除button的边框
小程序去除button的边框
90 0
PyQt5 技术篇-设置alignment对齐方式。Qt Designer设置文本对齐方式。居中、左对齐、右对齐、上对齐、下对齐。
PyQt5 技术篇-设置alignment对齐方式。Qt Designer设置文本对齐方式。居中、左对齐、右对齐、上对齐、下对齐。
1061 0
PyQt5 技术篇-设置alignment对齐方式。Qt Designer设置文本对齐方式。居中、左对齐、右对齐、上对齐、下对齐。
flutter调出键盘报错溢出异常:bottom overflowed by 104 PIXELS
flutter调出键盘报错溢出异常:bottom overflowed by 104 PIXELS
483 0
|
前端开发 Android开发 容器
Android自定义Tablayout下划线指示器Indicator:设置宽高、圆角、渐变颜色
Android自定义Tablayout下划线指示器Indicator:设置宽高、圆角、渐变颜色 Android原生的Tablayout下面有一个指示器(指示线、下划线),如图所示:详情见附录1。
6039 0