0

アプリケーションで等幅フォントを次のように作成します。

Font f = new Font(Font.MONOSPACED, Font.PLAIN, 18);

PC でアプリケーションを実行すると、フォントが正常に表示されます ( Ubuntu 12.04 LTS, Java SE Runtime Environment - build 1.7.0_25-b15)。

ARM コンピュータでアプリケーションを実行すると、フォントが右に傾いています ( Debian Squeeze, armel, Java SE Embedded Runtime Environment - build 1.7.0_10-b18)。

私はこの小さなプログラムをテストしました:

public class Main {
    public static void main(String[] args) {
        setTerminalFont(new Font(Font.MONOSPACED, Font.PLAIN, 18));
        setTerminalFont(new Font("DejaVu Sans Mono", Font.PLAIN, 18));
    }
    private static void setTerminalFont(Font x_font) {
        System.out.println("Font family=["+x_font.getFamily()+"] name=["+x_font.getFontName()+"] i-angle="+x_font.getItalicAngle());        
    }
}

PC コンピュータでは、次のように出力されます。

Font family=[Monospaced] name=[Monospaced.plain] i-angle=0.0
Font family=[DejaVu Sans Mono] name=[DejaVu Sans Mono] i-angle=0.0

ARM コンピューターでは、次のように出力されます。

Font family=[Monospaced] name=[Monospaced.plain] i-angle=0.1899996
Font family=[DejaVu Sans Mono] name=[DejaVu Sans Mono Oblique] i-angle=0.1899996

ARM バージョンがDejaVu Sans Mono Obliqueを使用する理由を誰か説明できますか?

斜めのフォントではなくプレーンなDejaVu Sans Monoフォントを使用するように Java を作成するにはどうすればよいですか?

4

1 に答える 1

0

単純な 論理フォントは私のシステムではバグがあるためFont.MONOSPACED、私の解決策は、システムで使用可能なすべてのフォントを次のようにリストすることでした。

System.out.println("Listing available fonts");
for (Font f : GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts())
   System.out.println("- "+f);

そして、プレーンまたはレギュラーであると主張するモノとタイプライターのもの、または斜めではないものを試して、本当にプレーンなものを見つけました。

私はで終わったLucida Sans Typewriter Regular

于 2013-07-12T13:28:16.120 に答える