设置SWT Shell的默认字体

时间:2011-08-28 11:25:37

标签: java user-interface swt

有没有办法为整个Shell设置默认字体,以便任何新控件都使用相同的字体?

现在看来我必须为我创建的每个控件设置字体,这会导致过多的冗余。

2 个答案:

答案 0 :(得分:2)

默认情况下使用的字体由平台选择(参见Class Font - SWT: The Standard Widget Toolkit中的其他信息),因此无法为所有小部件设置默认字体,如果您需要,则必须“手动” ” ..

为什么要更改默认字体..?

答案 1 :(得分:0)

没有可以更改默认字体大小的API。

但是,我们可以使用类阴影副作用来做到这一点。例如(osx),复制了源代码 org.eclipse.swt.internal.cocoa.NSFont 并更新了方法

public static NSFont systemFontOfSize(double fontSize) {
    // hacking it by class shadowing
    fontSize = 24;
    long result = OS.objc_msgSend(OS.class_NSFont, OS.sel_systemFontOfSize_, fontSize);
    return result != 0 ? new NSFont(result) : null;
}

我们在SWT获得结果之前重新分配更大的字体大小

My Bigger Font Window

这是黑客行为,不建议在生产环境中使用。