要準確的計算文字在畫布上佔據的空間,可以利用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();