[英]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显示器后自动处置它们。 因此,客户端不需要(实际上,绝对不能尝试)自己处置字体对象。
这是使用Display
的disposeExec
方法完成的。
ImageRegistry
相同:
图像注册表拥有向其注册的所有图像对象,并在创建图像的SWT显示器被放置时自动将其丢弃。 因此,客户端不需要(实际上,一定不要尝试)自己处置这些映像。
如果您想更早处置图像, ImageRegistry
也提供了dispose
方法。
注意:可以使用您自己的ResourceManager
创建ImageRegistry
,在这种情况下,由资源管理器来安排处置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.