要准确的计算文字在画布上占据的空间,可以利用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:计算字符串在画布上占据的空间,如需转载请自行联系原博主。