どうしたらいいのかしら インポート フォント。
ダウンロードしたカスタムフォントを使用しようとしていますが、これを実行するほとんどのコンピューターには、デフォルトのフォントではないため、このフォントがありません。フォントがなくてもフォントを機能させるにはどうすればよいですか?
ゲームオーバー画面に使用していますが、スコアを表示する必要があり、スコアテキストを同じフォントにする必要があります。これが画像です、
重要な場合、私のコンピューターのフォント名はTerminal
です。
編集:Javaファイルのディレクトリにフォントが必要であり、それを使用する方法があると思いますが、方法はわかりません。または、もっと良い方法?
Edit2:それを行う方法についての素晴らしいチュートリアルを見つけましたが、これを使用する方法についていくつかの助けが必要です... リンクをクリックしてください
Edit3:
URL fontUrl = new URL("http://www.webpagepublicity.com/" + "free-fonts/a/Airacobra%20Condensed.ttf");
Font font = Font.createFont(Font.TRUETYPE_FONT, fontUrl.openStream());
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(font);
g.setFont(font);
エラーメッセージ
File: F:\Computer Science\draw.Java [line: 252]
Error: F:\Computer Science\draw.Java:252: font is not public in Java.awt.Component; cannot be accessed from outside package
これが私が試していることです:
URL fontUrl = new URL("http://img.dafont.com/dl/?f=badaboom_bb");
Font font = Font.createFont(Font.TRUETYPE_FONT, fontUrl.openStream());
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(font);
g.setFont(font);
Edit4:
File fontfile = new File("TexasLED.ttf");
File.toURI(fontfile).toURL(fontfile);
URL fontUrl = new URL("fontfile");
エラー
Error: F:\Computer Science\draw.Java:250: toURI() in Java.io.File cannot be applied to (Java.io.File)
'Airacobra Condensed'フォントは 無料フォントのダウンロード から入手できます。
import Java.awt.*;
import javax.swing.*;
import Java.net.URL;
class LoadFont {
public static void main(String[] args) throws Exception {
// This font is < 35Kb.
URL fontUrl = new URL("http://www.webpagepublicity.com/" +
"free-fonts/a/Airacobra%20Condensed.ttf");
Font font = Font.createFont(Font.TRUETYPE_FONT, fontUrl.openStream());
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(font);
JList fonts = new JList( ge.getAvailableFontFamilyNames() );
JOptionPane.showMessageDialog(null, new JScrollPane(fonts));
}
}
OK、それは楽しかったですが、このフォントは実際にはどのように見えますか?
import Java.awt.*;
import javax.swing.*;
import Java.net.URL;
class DisplayFont {
public static void main(String[] args) throws Exception {
URL fontUrl = new URL("http://www.webpagepublicity.com/" +
"free-fonts/a/Airacobra%20Condensed.ttf");
Font font = Font.createFont(Font.TRUETYPE_FONT, fontUrl.openStream());
font = font.deriveFont(Font.PLAIN,20);
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(font);
JLabel l = new JLabel(
"The quick brown fox jumps over the lazy dog. 0123456789");
l.setFont(font);
JOptionPane.showMessageDialog(null, l);
}
}
GraphicsEnvironment.registerFont
を使用できます
これにより、.ttfファイルからフォントをロードできます。
private static final Font SERIF_FONT = new Font("serif", Font.PLAIN, 24);
private static Font getFont(String name) {
Font font = null;
if (name == null) {
return SERIF_FONT;
}
try {
// load from a cache map, if exists
if (fonts != null && (font = fonts.get(name)) != null) {
return font;
}
String fName = Params.get().getFontPath() + name;
File fontFile = new File(fName);
font = Font.createFont(Font.TRUETYPE_FONT, fontFile);
GraphicsEnvironment ge = GraphicsEnvironment
.getLocalGraphicsEnvironment();
ge.registerFont(font);
fonts.put(name, font);
} catch (Exception ex) {
log.info(name + " not loaded. Using serif font.");
font = SERIF_FONT;
}
return font;
}
私は自分の問題を解決しました。私はやった
URL fontUrl = new URL("file:///F:/Computer_Science/TexasLED.ttf");
それはフォントを指し、私のために働きます!
アプリケーションのjarファイルに埋め込まれたフォントを使用することもできます。私はこの関数を長年使用して、プロジェクトにフォントをロードしてきました。
public Font getFont(String fileName) throws Exception {
String path = "/xyz/isururanawaka/wb/fonts/" + fileName;
URL url = getClass().getResource(path);
return Font.createFont(Font.TRUETYPE_FONT, new File(url.toURI()));
}