Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TitleReadialog-更改setTitle(“abc”)的字体_Java_Fonts_Swt_Jface_Titleareadialog - Fatal编程技术网

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

Java TitleReadialog-更改setTitle(“abc”)的字体,java,fonts,swt,jface,titleareadialog,Java,Fonts,Swt,Jface,Titleareadialog,我正在我的班上扩展TitlearReadialog 标题区域中标题的默认字体看起来不太好看。 可以更改标题的字体吗? 我不需要在代码的任何其他地方更改字体,只需要标题文本 我试过使用FontRegistry和StyledText 但是我不知道如何将新字体分配给setTitle() 我真的认为那是不可能的。通过setTitle(String)设置的title字符串将显示在private字段titleLabel中。在子类化titlearealog时,无法访问此标签。因此,您不能对其应用字体 因此,

我正在我的班上扩展TitlearReadialog

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

我试过使用FontRegistry和StyledText

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


我真的认为那是不可能的。通过
setTitle(String)
设置的
title
字符串将显示在
private
字段
titleLabel
中。在子类化
titlearealog
时,无法访问此
标签。因此,您不能对其应用
字体



因此,我能想到的唯一可能性是基于原始
titlearealog
的代码创建您自己的
mytitlearealog extends-TrayDialog
,并在那里设置您的
Font
。您可以在SWT.jar或在线上找到源代码。

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

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

我在静态块中添加了此代码,因此它只执行一次。

您是否建议我扩展TrayDialog而不是扩展TitleAreaDialog。然后创建我自己的标题区?@jktater如果你真的想更改字体,你必须把手弄脏。您必须从原始标题Readialog复制代码,只需在其中修改标签的字体即可。我建议你想得太多了,也许决定坚持使用默认字体。
static 
{
    JFaceResources.getFontRegistry().put(JFaceResources.BANNER_FONT, yourFont.getFontData());
};