如何加载系统上未安装的字体

How to load font not installed on system

我想从一个 eclipse 插件修改默认的编辑器文本字体,我设法通过以下方式做到这一点: WorkbenchPlugin.getDefault().getPreferenceStore().put(JFaceResources.TEXT_FONT, "dummy font values");

问题是我要设置的字体(Source Code Pro)没有安装在系统中,也不应该安装。

我从 here 下载字体,但我没有找到从下载的文件加载字体并将其设置为 JFaceResources.TEXT_FONT 首选项条目的值的方法。

org.eclipse.swt.graphics.Device 有一个方法 loadFont(String path) 看起来很有希望,但是 Display.getCurrent() returns null 在我的插件中。

如何从文件加载字体?
加载后如何在我的插件中设置字体?

试试下面的代码片段。它适用于大多数情况。我通过参考 SO 问题 link ---> Load a font in RCP

得到了这个片段
final String path = "fonts/helveticaNeueBold_iOS7.ttf";
final URL pathUrl = BundleUtility.find(PLUGIN_ID, path);
final String filePathAsString = FileLocator.toFileURL(pathUrl).getPath().toString();
final boolean isFontLoaded = Display.getCurrent().loadFont(filePathAsString);