2017-09-24 97 views
1

我正在學習如何使用FontRegistry以及它如何工作。 目前,我有一個集中的類(FontUtils)在啓動時加載的所有字體數據是這樣的:FontRegistry和SWT處理(JFace)

fontRegistry.put("small",new FontData[]{new FontData("Tahoma",8, SWT.BOLD)}); 
在我的計劃

後來我用這個:

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

我在想,如果我必須處理在FontUtils中創建的字體,因爲每次創建字體時都要根據文檔處理它。 但FontRegistry不知道任何有關創建字體的事情,實際上它沒有一個名爲dispose的方法。 我必須自己照顧處置嗎?

前面的實例使用一個變量來統計有多少資源正在使用該字體,如果它是0處置字體?

因爲我要爲ImageRegistry做同樣的事情,行爲是一樣的,對嗎?

回答

2

FontRegistry管理它擁有的所有字體並處理它們。

的JavaDoc的說:

A字型註冊表所擁有的所有與它註冊的字體的對象,以及創建該 字體的SWT顯示器設置時 自動處置它們。因此,客戶不需要(實際上, 不能嘗試)自己處理字體對象。

這是使用方法Display完成的。

ImageRegistry是相同的:

一種圖像註冊表擁有所有與它, 登記的圖像的對象,並自動創建 的圖像中的顯示SWT被設置時,其中的處置。因此,客戶不需要 (實際上,不能嘗試)自己處理這些圖像。

ImageRegistry如果要處理較早的圖像確實也有dispose方法。

注意:可以使用您自己的ResourceManager創建ImageRegistry,在這種情況下,由資源管理器安排處理。

+0

好的,我明白了,非常感謝你的回覆...... – navy1978