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();
运行时的效果: