2

我正在课堂上扩展 TitleAreaDialog。

标题区域中标题的默认字体看起来不是很好。
是否可以更改标题的字体?
我不需要更改代码中其他任何地方的字体,只需更改标题文本即可。

我尝试过使用 FontRegistry 以及 StyledText。

但我不知道如何将新字体分配给 setTitle()。

FontRegistry fontRegistry = JFaceResources.getFontRegistry();
FontData mainFont = new FontData("Garamond", 18, SWT.NORMAL);
fontRegistry.put("mainFont", new FontData[]{mainFont});
?.setText("Title Text");
?.setFont(fontRegistry.get("mainFont"));  
setTitle(?);  
4

2 回答 2

2

我真的不认为这是可能的。您设置的title StringviasetTitle(String)显示在private字段中titleLabelLabel子类化时不能访问它TitleAreaDialog。因此,您不能将 aFont应用于它。


MyTitleAreaDialog extends TrayDialog因此,我能想到的唯一可能性是根据原始代码创建自己的代码TitleAreaDialog并将您设置在Font那里。您可以在 SWT.jar 中或在线找到源代码。

于 2012-10-20T10:02:50.680 回答
0

这是一个老问题的答案,但它可能对某人有所帮助。您可以通过更改 JFaceResources 字体注册表中的字体来实现。

static 
{
    JFaceResources.getFontRegistry().put(JFaceResources.BANNER_FONT, yourFont.getFontData());
};

我已将此代码添加到静态块中,因此它只执行一次。

于 2017-01-02T15:29:46.227 回答