仅更改SWT中的字体大小

Tom*_*rle 24 fonts swt

我需要为其中一个标签使用更大的字体.

label.setFont( new Font(display,"Arial", 14, SWT.BOLD ) );
Run Code Online (Sandbox Code Playgroud)

但显然Arial并不总是默认字体.我想改变大小并将其他所有内容保持为默认值.

我能做点什么吗

label.setFontSize( 14 );
Run Code Online (Sandbox Code Playgroud)

避免设置其他参数?或者我至少可以找到实际用作默认字体的名称?

Mar*_*k K 37

我相信你可以做点什么

FontData[] fD = label.getFont().getFontData();
fD[0].setHeight(16);
label.setFont( new Font(display,fD[0]));
Run Code Online (Sandbox Code Playgroud)

只要返回的字体不超过一个,这应该有效.


hud*_*onb 32

您可以执行以下操作:

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();
    }
});
Run Code Online (Sandbox Code Playgroud)