web-dev-qa-db-ja.com

フォントをどのようにインポートしますか?

どうしたらいいのかしら インポート フォント。

ダウンロードしたカスタムフォントを使用しようとしていますが、これを実行するほとんどのコンピューターには、デフォルトのフォントではないため、このフォントがありません。フォントがなくてもフォントを機能させるにはどうすればよいですか?

ゲームオーバー画面に使用していますが、スコアを表示する必要があり、スコアテキストを同じフォントにする必要があります。これが画像です、

enter image description here

重要な場合、私のコンピューターのフォント名は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)
8
ComputerLocus

'Airacobra Condensed'フォントは 無料フォントのダウンロード から入手できます。

Registered Font

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、それは楽しかったですが、このフォントは実際にはどのように見えますか?

Display Font

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);
    }
}
14
Andrew Thompson

GraphicsEnvironment.registerFontを使用できます

http://docs.Oracle.com/javase/6/docs/api/Java/awt/GraphicsEnvironment.html#registerFont(Java.awt.Font

これにより、.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;
}
4
Wouter Dorgelo

私は自分の問題を解決しました。私はやった

URL fontUrl = new URL("file:///F:/Computer_Science/TexasLED.ttf");

それはフォントを指し、私のために働きます!

3
ComputerLocus

アプリケーションの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()));
}
0
isu3ru