java在jar文件中设置字体

标签 java netbeans fonts jar truetype

我正在尝试设置在 jar 文件根目录下的资源文件夹中找到的字体“bilboregular.ttf”。如果我从 netbeans 运行,字体设置成功,但是如果从 jar 文件运行,则字体设置失败

代码:

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;
}

最佳答案

你的 main 不能使用 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 block 中使用记录器)。
顺便提一句。空的异常 block 在这里不是一个好主意,因为 IO 操作在许多情况下可能会失败。

关于java在jar文件中设置字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13732009/

相关文章:

java - 清理、构建和构建之间的区别?

html - 如何嵌入卡纳达字体?

java - 在长时间运行的过程中,什么会导致突然的 ClassNotFoundException?

java - 获取JAVA PID PHP

java - 有没有办法在eclipse中运行netbeans开发的java程序?

java - 将 ant 与 Netbeans 保存操作结合使用

css - Google 字体在 Chrome 中呈现不佳

css - SAPUI5 中的自定义字体 - 使用自定义字体覆盖整个主题及其控件字体

java - 获取 DateTime dayOfWeek/dayOfMonth 作为字符串

java - Android 阻止 onPause 在父类中被调用