23
我需要爲其中一個標籤使用較大的字體。更改SWT中的字體大小
label.setFont(new Font(display,"Arial", 14, SWT.BOLD));
但顯然Arial並不總是默認字體。我想只改變尺寸,並保持其他一切都在默認值。
我可以這樣做
label.setFontSize(14);
避免設置其他參數?或者我至少可以找出實際用作默認字體的字體的名稱?
我需要爲其中一個標籤使用較大的字體。更改SWT中的字體大小
label.setFont(new Font(display,"Arial", 14, SWT.BOLD));
但顯然Arial並不總是默認字體。我想只改變尺寸,並保持其他一切都在默認值。
我可以這樣做
label.setFontSize(14);
避免設置其他參數?或者我至少可以找出實際用作默認字體的字體的名稱?
我相信你可以做這樣的事情
FontData[] fD = label.getFont().getFontData();
fD[0].setHeight(16);
label.setFont(new Font(display,fD[0]));
只要不超過一個字體返回,應該工作。
你可以做到以下幾點:
FontData[] fontData = label.getFont().getFontData();
for(int i = 0; i < fontData.length; ++i)
fontData[i].setHeight(14);
final Font newFont = new Font(display, fontData);
label.setFont(newFont);
// Since you created the font, you must dispose it
label.addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent e) {
newFont.dispose();
}
});
處置(圖)是沒有意義的,並可能是一個複製和粘貼錯誤 – mkdev 2013-07-12 12:48:35