Ответ 1
Я считаю, что вы могли бы сделать что-то вроде
FontData[] fD = label.getFont().getFontData();
fD[0].setHeight(16);
label.setFont( new Font(display,fD[0]));
Пока не возвращается не более одного шрифта, это должно работать.
Мне нужно использовать более крупный шрифт для одной из ярлыков.
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();
}
});