17

Java Swingアプリケーションでカスタムフォント(ttf)を使用する必要があります。それらをパッケージに追加して使用するにはどうすればよいですか?

その間、私はそれらをウィンドウにインストールしてから使用しますが、アプリケーションの使用法がそれほど複雑になることを望まないので、アプリケーションを使用する前にフォントをインストールするようにユーザーに指示するのはあまり便利ではありません。

4

3 に答える 3

26

あなたはそれらを介してロードすることができますInputStream

InputStream is = MyClass.class.getResourceAsStream("TestFont.ttf");
Font font = Font.createFont(Font.TRUETYPE_FONT, is);

このロードされたフォントには事前定義されたフォント設定がないため、使用するには、次のことを行う必要があります。

Font sizedFont = font.deriveFont(12f);
myLabel.setFont(sizedFont);

見る:

物理フォントと論理フォント

于 2012-10-21T14:18:11.590 に答える
8

Reimeusが言ったように、あなたはを使うことができますInputStreamFile:を使用することもできます

File font_file = new File("TestFont.ttf");
Font font = Font.createFont(Font.TRUETYPE_FONT, font_file);

どちらの場合も、フォントファイルをプロジェクトのルートディレクトリまたはサブディレクトリのいずれかに配置します。ルートディレクトリは、おそらくプログラムの実行元のディレクトリである必要があります。たとえば、次のようなディレクトリ構造がある場合:

My_Program
|
|-Fonts
| |-TestFont.ttf
|-bin
  |-prog.class

My_Programを使用してディレクトリからプログラムを実行しますjava bin/progInputStream次に、コードで、またはのいずれかに渡すファイルのパスと名前File"Fonts/TestFont.ttf"

于 2012-10-21T14:39:42.317 に答える
1

これを試して:

@Override
public Font getFont() {
    try {
        InputStream is = GUI.class.getResourceAsStream("TestFont.ttf");
        Font font = Font.createFont(Font.TRUETYPE_FONT, is);
        return font;
    } catch (FontFormatException | IOException ex) {
        Logger.getLogger(GUI.class.getName()).log(Level.SEVERE, null, ex);
        return super.getFont();
    }
}
于 2014-08-22T08:17:04.480 に答える