Изменить только размер шрифта в SWT - PullRequest
24 голосов
/ 20 сентября 2009

Мне нужно использовать шрифт большего размера для одной из меток.

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

но очевидно, что Arial не всегда является шрифтом по умолчанию. Я хочу изменить только размер и оставить все остальное по умолчанию.

Могу ли я сделать что-то вроде

label.setFontSize( 14 );

чтобы не устанавливать другие параметры? Или я могу хотя бы узнать название шрифта, который фактически используется по умолчанию?

Ответы [ 2 ]

37 голосов
/ 20 сентября 2009

Я полагаю, вы могли бы сделать что-то вроде

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

Пока возвращается не более одного шрифта, это должно работать.

32 голосов
/ 24 марта 2010

Вы можете сделать следующее:

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