卸载使用SWT的Display.loadFont API安装的字体

时间:2011-02-04 14:10:17

标签: java eclipse fonts swt eclipse-rcp

我在eclipse插件下工作并尝试将字体作为资源加载到应用程序中,因此它们将出现在项目资源管理器树中。

在SWT中我们有Display类的方法loadFont,它从指定文件加载字体,因此它将出现在应用程序的可用字体列表中。我正在使用这种方法。

但是当我尝试从项目浏览器中删除字体时,我遇到以下异常:

  

org.eclipse.core.internal.resources.ResourceException:   删除资源时遇到的问题

我有以下问题:

  1. 是否可以从SWT中的应用程序中卸载字体?
  2. 有什么办法可以解决吗?
  3. 在eclipse中还有另一种处理自定义字体的方案吗?

1 个答案:

答案 0 :(得分:1)

FontData类型的类不需要处理,因为它们只包含有关字体的少量信息。当你创建一个实际的Font对象然后是,你有责任调用.dispose()并释放这些资源。

如果您正在使用JFace和SWT,那么您可能需要查看FontRegistry,它有助于跟踪字体资源。

对于没有链接任何javadocs的道歉,现在没有为我加载SWT文档。我找到a small example of FontRegistry usage来解释FontData和Font之间的区别。