可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I need to use a larger font for one of the labels.
label.setFont( new Font(display,"Arial", 14, SWT.BOLD ) );
but obviously Arial is not always the default font. I want to change just the size and keep everything else at default values.
Can I do something like
label.setFontSize( 14 );
to avoid setting the other parameters? Or can I at least find out the name of the font that is actually being used as default?
回答1:
I believe you could do something like
FontData[] fD = label.getFont().getFontData(); fD[0].setHeight(16); label.setFont( new Font(display,fD[0]));
As long as no more than one font is returned, that should work.
回答2:
You can do the following:
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(); } });