Java Swingアプリケーションでカスタムフォント(ttf)を使用する必要があります。それらをパッケージに追加して使用するにはどうすればよいですか?
その間、私はそれらをウィンドウにインストールしてから使用しますが、アプリケーションの使用法がそれほど複雑になることを望まないので、アプリケーションを使用する前にフォントをインストールするようにユーザーに指示するのはあまり便利ではありません。
Java Swingアプリケーションでカスタムフォント(ttf)を使用する必要があります。それらをパッケージに追加して使用するにはどうすればよいですか?
その間、私はそれらをウィンドウにインストールしてから使用しますが、アプリケーションの使用法がそれほど複雑になることを望まないので、アプリケーションを使用する前にフォントをインストールするようにユーザーに指示するのはあまり便利ではありません。
あなたはそれらを介してロードすることができますInputStream
:
InputStream is = MyClass.class.getResourceAsStream("TestFont.ttf");
Font font = Font.createFont(Font.TRUETYPE_FONT, is);
このロードされたフォントには事前定義されたフォント設定がないため、使用するには、次のことを行う必要があります。
Font sizedFont = font.deriveFont(12f);
myLabel.setFont(sizedFont);
見る:
Reimeusが言ったように、あなたはを使うことができますInputStream
。File
:を使用することもできます
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/prog
。InputStream
次に、コードで、またはのいずれかに渡すファイルのパスと名前File
を"Fonts/TestFont.ttf"
。
これを試して:
@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();
}
}