繁体   English   中英

SWT中的FontRegistry和Dispose(JFace)

[英]FontRegistry and Dispose in SWT (JFace)

我正在学习如何使用FontRegistry及其工作方式。 目前,我有一个集中化的类(FontUtils),它在启动时会加载所有字体数据,如下所示:

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

稍后在我的程序中,我将使用以下代码:

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

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

实例使用一个变量来计算使用字体的资源量,如果它是0,则丢弃该字体?

因为我将对ImageRegistry执行相同的操作,所以我的行为是相同的,对吗?

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

JavaDoc说:

字体注册表拥有向其注册的所有字体对象,并在处置创建字体的SWT显示器后自动处置它们。 因此,客户端不需要(实际上,绝对不能尝试)自己处置字体对象。

这是使用DisplaydisposeExec方法完成的。

ImageRegistry相同:

图像注册表拥有向其注册的所有图像对象,并在创建图像的SWT显示器被放置时自动将其丢弃。 因此,客户端不需要(实际上,一定不要尝试)自己处置这些映像。

如果您想更早处置图像, ImageRegistry也提供了dispose方法。

注意:可以使用您自己的ResourceManager创建ImageRegistry ,在这种情况下,由资源管理器来安排处置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM