私はJavaでプログラムを作成しました。これは、デフォルトではどのオペレーティングシステムにも存在しない特別なフォントを使用します。
Javaでこの特別なフォントをオペレーティングシステムに追加できますか?たとえば、Windowsでは、このフォントを特別なFontsフォルダーにコピーできます。
可能であれば、どのように?
フォントファイル(otf、ttfなど)をパッケージに含める場合、ここで説明する方法でアプリケーションでフォントを使用できます。
Oracle Java SE 6:Java.awt.Font
この例を示すOracleの tutorial available があります。
try {
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File("A.ttf")));
} catch (IOException|FontFormatException e) {
//Handle exception
}
使用するたびにパッケージからファイルをリロードしないようにするために、おそらくこれを何らかのリソースローダーでラップします。
元の質問により密接に関連する回答は、アプリケーションのインストールプロセスの一部としてフォントをインストールすることです。そのプロセスは、選択したインストール方法によって異なります。デスクトップアプリでない場合は、提供されているリンクを調べる必要があります。
これが私がやった方法です!
//create the font
try {
//create the font to use. Specify the size!
Font customFont = Font.createFont(Font.TRUETYPE_FONT, new File("Fonts\\custom_font.ttf")).deriveFont(12f);
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
//register the font
ge.registerFont(customFont);
} catch (IOException e) {
e.printStackTrace();
} catch(FontFormatException e) {
e.printStackTrace();
}
//use the font
yourSwingComponent.setFont(customFont);
Javaチュートリアル から、新しいフォントを作成してグラフィック環境に登録する必要があります。
_GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File("A.ttf")));
_
この手順が完了すると、フォントはgetAvailableFontFamilyNames()
の呼び出しで使用可能になり、フォントコンストラクターで使用できます。
このフォントを使用してgraphics2dなどで描画する場合、これは機能します。
InputStream stream = ClassLoader.getSystemClassLoader().getResourceAsStream("roboto-bold.ttf")
Font font = Font.createFont(Font.TRUETYPE_FONT, stream).deriveFont(48f)