0

JLabel、JTextField、およびその他の Java Swing コンポーネントを含むアプレットがあります。一方、私は .ttf ファイルである Unicode フォント「AR」、「AR-ExtB」(拡張 B 領域)、および「AR-Plus」(補助私的使用領域-A) を持っています。ユーザーが入力するコード ポイントに応じて、アプレットがすべての GUI コンポーネントで 3 つの .ttf ファイルを使用するようにします。

1) これらのコンポーネントが複数のフォントで動作するオプションがないことはわかっています。そのため、フォントをコンポーネントに明示的に設定する方法はオプションではありません。

2) $JAVA_HOME/lib ディレクトリにある fontconfig.properties ファイルを変更することで、これを実現する方法があります。たとえば、「ダイアログ」(論理) フォントは、3 つの .ttf ファイルを 1 つの論理フォントとしてマップしています。しかし問題は、他のすべての Java アプリケーションにもこれらのフォントがあり、それは望ましいシナリオではないということです。

3) 「フォールバック フォント」。画面にグリフを表示できるフォントが他にない場合に使用されます。これも、JAVA のデフォルト フォントでカバーされていない文字のみが表示されるため、解決策ではありません。

質問は:

これらの .ttf ファイルをすべての GUI Swing コンポーネントでフォントとして使用する方法を知っている人はいますか? JVM で実行されるすべてのアプリケーションに対してグローバルではなく、アプレット内でのみ使用しますか?

4

1 に答える 1

0

TTF ファイルを Font として使用するには、それをロードして、このように設定された Font オブジェクトを作成する必要があります。

    try {
     GraphicsEnvironment ge = 
         GraphicsEnvironment.getLocalGraphicsEnvironment();
     ge.registerFont(Font.createFont(Font.TRUETYPE_FONT, new File("A.ttf")));
} catch (IOException|FontFormatException e) {
     //Handle exception
}

この後、フォント オブジェクトを使用できます。

論理フォント チェックを使用するには、Oracle ドキュメントを参照してください。

-- スマン

于 2016-07-21T13:11:54.473 に答える