web-dev-qa-db-ja.com

SWTのフォントサイズだけを変更する

ラベルの1つに大きなフォントを使用する必要があります。

label.setFont( new Font(display,"Arial", 14, SWT.BOLD ) );

しかし、明らかにArialが常にデフォルトのフォントであるとは限りません。サイズだけを変更し、他のすべてをデフォルト値のままにしておきたい。

私は次のようなことをすることができますか

label.setFontSize( 14 );

他のパラメータの設定を避けるために?または、少なくとも実際にデフォルトとして使用されているフォントの名前を見つけることはできますか?

25
Tomas Andrle

私はあなたが次のようなことをすることができると信じています

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

返されるフォントが1つだけである限り、それは機能するはずです。

37
Mark K

次のことができます。

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();
    }
});
32
hudsonb