JFace FontRegistry字体处理

时间:2010-04-20 16:45:18

标签: dispose jface

我有一个应用程序,它有很多窗口,所以我有必要创建一个包含FontRegistry实例的单例并让该单例管理FontRegistry的内容。我的代码看起来像这样:

import org.eclipse.jface.resource.FontRegistry;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.widgets.Display;

public final class FontRegistryManager {
    public static final FontRegistryManager INSTANCE = new FontRegistryManager();

    FontRegistry fr;

    private FontRegistryManager() {
        fr = new FontRegistry();

        Display currentDisplay = Display.getCurrent();
        Font mainFont = new Font(currentDisplay, "Tahoma", 8, 0);           
        fr.put(FontRegistryConstants.MAIN_FONT, mainFont.getFontData());
        mainFont.dispose();
    }

    public FontRegistry getFR() {
        return fr;
    }
}

我想知道的是,我是否应该立即处置mainFont

2 个答案:

答案 0 :(得分:0)

我认为在这里处理字体没有问题,只要它不会被代码块转义。

答案 1 :(得分:0)

是的,因为您实例化了它,您需要将其某些时候处理掉。最好的时间是你不再需要它之后立即:)但是,@ strangeoptics是正确的,你根本不需要创建字体。