jar文件中的java设置字体

时间:2012-12-05 20:39:17

标签: java netbeans fonts jar true-type-fonts

我正在尝试在jar文件根目录下的resources文件夹中找到一个字体“bilboregular.ttf”。如果我从netbeans运行字体设置成功,但是如果从jar文件中它不是

CODE:

main method:{

        String s = System.getProperty("user.dir") + "\\src\\resources\\" + "bilboregular.ttf";
        File a = new File(s);
        if (a.exists()) {
            this.loadFont(s);
        } else {
            this.loadFont(this.getClass().getResource("/resources/" + "bilboregular.ttf").getFile());
        }
}

 public void loadFont(String s) {
    try {
        font = java.awt.Font.createFont(java.awt.Font.TRUETYPE_FONT, new File(s));
        font = font.deriveFont(Font.PLAIN, 20);
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        ge.registerFont(font);
        setFonts();
    } catch (Exception ex) {
    }

}

public boolean setFonts() {
    jLabel3.setFont(font);
    jLabel4.setFont(font);
    return true;
}

1 个答案:

答案 0 :(得分:2)

您的主要内容无法使用getClass()因为static(假设您的意思是public static void main(String args[]) “main”)。

试试这段代码:

InputStream is = getClass().getResourceAsStream("/resources/bilboregular.ttf");
Font f = Font.createFont(Font.TRUETYPE_FONT, is);

如果这不起作用:请发布JAR的结构和抛出的异常(例如,在catch块中使用记录器)。
顺便说一句。一个空的异常块在这里不是一个好主意,因为在许多情况下IO操作可能会失败。