SWT:获取字符串实际宽度
由于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;
} }
SWT:获取字符串实际宽度的更多相关文章
- Swing获取字符串的宽度和高度
import java.awt.Color; import java.awt.Font; import java.awt.font.FontRenderContext; import java.awt ...
- iOS 字符串的宽度和高度自适应
//获取字符串的宽度 -(float)widthForString:(NSString *)value fontSize:(float)fontSize andHeight:(float)height ...
- 【代码笔记】iOS-获取字符串的宽度,高度
一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, ...
- c# 自动计算字符串的宽度
测试代码: string str = "字符串"; var width = TextRenderer.MeasureText(str, this.Font); var width2 ...
- C#获取字符串宽度像素
通过Graphics对象的MeasureString方法可以获取字符串的大小,如下: Graphics graphics = CreateGraphics(); SizeF sizeF = graph ...
- Js获取字符串的显示宽度/高度
重点:1.在H5页面,文字大小单位为rem2.不同的font-family,文字的宽度不一样3.文字宽度同时受font-size和font-family影响 思路:在页面动态创建一个节点,设置节点的f ...
- iOS计算字符串的宽度高度
OC开发中会遇到根据字符串和字体大小来算计算出字符串所占的宽高->> 封装方法如下: #import <Foundation/Foundation.h> #import < ...
- 自动获取UILabel的宽度高度
在使用UILabel存放字符串时,经常需要获取label的长宽数据,本文列出了部分常用的计算方法. 1.获取宽度,获取字符串不折行单行显示时所需要的长度 CGSize titleSize = [aSt ...
- C# 获取字符串字节长度
一.C# 获取字符串字节长度 1.在C# 语言中使用string 字符串Unicode 编码 2.在C#语言中常用汉字 占 3个字节 方式1:使用默认编码类获取字节长度 Console.WriteLi ...
随机推荐
- Test注解的两个属性(转)
Test注解的两个属性:expected和timeout Junit的Test注解支持两个可选的参数expected和timeout.expected声明一个测试方法必须抛出一个异常.如果不抛出异常或 ...
- .net mvc 扩展IPrincipal接口
.自定义实现IPrincipal接口的类 interface ICustomPrincipal : IPrincipal { string Identifier { get; set; } strin ...
- js打开新页面
var PostNewPage=function (url, params) { var temp_form = document.createElement("form"); t ...
- Httpoxy远程代理感染漏洞 [转]
Httpoxy是一个最新曝出的一个CGI程序漏洞,它主要可能威胁到运行在CGI上的PHP,Go,Python和其他代码程序语言. 0×01 什么是httpoxy? 具体来说, httpoxy是一组影 ...
- selenium-pageobject设计模式
from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom time import sleepfrom ...
- 简单jquery实现select三级联动
简单的jquery实现select三级联动 代码如下: <!DOCTYPE html> <html> <head> <meta charset="u ...
- virtualbox下面安装ubuntu后外网如何远程ssh访问
这两天在折腾virtualbox安装linux的事情,想多弄几个节点,装hadoop, 环境如下 两台thinkpad, 一台正常上班用的,win7 一台装的ubuntu kylin 16.04, 上 ...
- 分离式模型separation model
1.关键字export 在头文件中定义模板,并且在模板的定义以及声明前添加关键字export. exported 模板可以直接使用,不需要看到该模板定义.模板的使用和定义可以分割于两个不同的编译单元. ...
- WInform关闭程序的几种方法以及区别。
1.this.Close(); 关闭窗体,如果关闭的是主窗体 程序结束.2.Application.Exit(); 退出所有的窗体但是如果有托管线程的话无法完全退出3.Application.Exit ...
- oracle入门必备
//................创建表空间 \ 赋予角色 \ 创建数据表 \ 插入数据 \ 创建序列 \ 添加注释 ........................... --创 ...