0

我尝试使用以下方法创建自定义字体,但是它引发了异常:

流已关闭

什么也没有发生!如何从我的 JAR 中导入 ttf 文件并在 Java 2D 中使用它!我设法让它与外部文件一起使用,但它不能与 InputStream 一起使用!

 public Font gameFont(String filename, float fontSize) {
    Font myfont = null;
     Font myfontReal = null;
    try {
        InputStream is = new BufferedInputStream(this.getClass().getResourceAsStream("com/or/dungeon/" + filename));

        myfont = Font.createFont(Font.TRUETYPE_FONT, is);
        myfontReal = myfont.deriveFont(fontSize);
        is.close();
    } catch (FontFormatException | IOException e) {
        System.out.println(e.getMessage());
    }
    return myfontReal;
}
4

1 回答 1

0

您缺少前导斜杠。没有它,它会相对于发出调用的类进行搜索。尝试:

this.getClass().getResourceAsStream("/com/or/dungeon/" + filename));

或者,尝试:

this.getClass().getClassLoader().getResourceAsStream("com/or/dungeon/" + filename));

于 2013-04-22T14:53:54.920 回答