簡體   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