4

特定のフォントサイズの高さを取得する代わりに、特定の高さを生成する特定のフォント(この場合はSansSerif)のフォントサイズを取得する(きちんとした)方法はありますか?

もちろん、フォントサイズをループしたり、何らかの形式のバイナリチョップを使用したりすることもできますが、可能であれば、少しクリーンでリソースをあまり消費しないものを使用したいと思います。私が見つけた最良の方法は、このようなものを使用することです。

4

3 に答える 3

3

簡単な方法はありません。

まず、Javaが提供する論理フォントファミリは5つだけであることを知っています。他のすべてのフォントは、プログラムを実行するシステムに存在することが保証されていません。

そうすると、いいえ、システム上のフォントのプロパティが自動的にマッピングされることはありません。それらをすべてロードし、必要なメジャーをループ検索する必要があります。

このコードを使用すると、使用可能なフォントをループできます。

import java.awt.Font;
import java.awt.GraphicsEnvironment;
public class MainClass {
  public static void main(String[] a) {
    GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
    Font[] fonts = e.getAllFonts(); // Get the fonts
    for (Font f : fonts) {
      System.out.println(f.getFontName());
    }
  }
}

次に、ニーズに合ったものを選択します。コードを変更して、必要な情報(重量など)を表示します。

編集:http : //download.oracle.com/javase/1.3/docs/guide/intl/addingfonts.htmlのThey are merely font-type names recognized by the Java runtime which must be mapped to some physical font that is installed on your system観察に注意してください。

論理フォントでさえ、常に同じであることが保証されているわけではありません。あなたができることは、10ptのサイズを取得し、フォントサイズを計算することです。好き

font_size_in_points =((10 * desidered_measure)/同等の_measure_of_the_10pt)

于 2011-08-25T14:36:28.560 に答える
2
FontMetrics metric = new FontMetrics(new Font("font"), Font.BOLD, 12);
metrics.getHeight()

あなたが探しているものかもしれません。

詳細:http ://download.oracle.com/javase/6/docs/api/java/awt/FontMetrics.html

于 2011-08-25T14:22:59.510 に答える
2

ここここTextLayoutに表示されている、を検索すると、特定のテキストに最も厳しい境界が提供されます。

于 2011-08-25T15:59:19.347 に答える