TitleAreaDialog - 更改setTitle(“abc”)的字体

时间:2012-10-19 20:10:18

标签: java fonts swt jface titleareadialog

我正在课堂上扩展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(?);  

2 个答案:

答案 0 :(得分:2)

我真的不认为这是可能的。您通过title设置的String setTitle(String)会显示在private字段titleLabel中。当您继承Label时,您无法访问此TitleAreaDialog。因此,您无法对其应用Font


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

答案 1 :(得分:0)

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

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

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