GEF常见问题7:计算字符串在画布上占据的空间

要准确的计算文字在画布上占据的空间,可以利用org.eclipse.swt.graphics.GC的stringExtent()方法实现,见下面的代码:

GC gc = new GC(Display.getDefault());
gc.setFont(yourFont);//这一步不可缺少,因为有些字体里各字符的宽度是不同的
Point size = gc.stringExtent(text);//得到文字占据的尺寸
label.setPreferredSize(size.x + 16, size.y + 10);//让标签的尺寸比文字稍大
gc.dispose();

运行时的效果:

GEF常见问题7:计算字符串在画布上占据的空间

你可能感兴趣的:(常见问题)