代码之家  ›  专栏  ›  技术社区  ›  navy1978

在SWT中进行FontRegistry和Dispose(JFace)

  •  1
  • navy1978  · 技术社区  · 7 年前

    我正在学习如何使用FontRegistry及其工作原理。

    fontRegistry.put("small",new FontData[]{new FontData("Tahoma",8, SWT.BOLD)});
    

    稍后在我的程序中,我会用到:

    gc.setFont(FontUtils.getFont("small"));
    

    我想知道是否必须处理在FontUtils中创建的字体,因为根据文档,每次创建字体时都应该处理它。 但是FontRegistry对字体的创建一无所知,实际上它没有一个名为dispose的方法。 我必须自己处理吗?

    因为我要对ImageRegistry做同样的操作,我认为行为是一样的,对吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   greg-449    7 年前

    FontRegistry 管理它拥有的所有字体并处理它们。

    JavaDoc说:

    字体注册表拥有所有注册的字体对象,以及 字体已释放。因此,客户不需要(实际上, 不得试图)处理字体对象本身。

    这是使用 disposeExec 方法 Display .

    ImageRegistry

    图像注册表拥有其注册的所有图像对象, 图像被处理。因此,客户不需要 (确实,不得试图)自行处理这些图像。

    也有一个 dispose 方法,如果要更早地处理图像。

    注意:可以创建 使用自己的 ResourceManager