[英]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.