Javaでプラットフォームで利用可能なFont一覧を表示するには、GraphicsEnvironment#getAllFontsメソッドを使います。すると、Fontオブジェクトのリストが手に入ります。ちなみに、Javaでは、physicalフォントとlogicalフォントを扱えます。
Fontクラスにはいくつかのメソッドがありますが、フォント名を取得するには3つのメソッドがあります。これらのメソッドの違いは知っておいた方が良いでしょう。
- Font#getFontNameメソッド … フォントフェース名取得
- Font#getFamilyメソッド … フォントファミリー名取得
- Font#getNameメソッド … 論理名取得
コンソール画面へ一覧を表示するクラスは次のようになります。
package org.sssg.soft.sample.fontlist;
import java.awt.Font;
import java.awt.GraphicsEnvironment;
import java.util.Arrays;
import java.util.List;
public class FontList {
final private List<Font> values;
public FontList() {
GraphicsEnvironment genv = GraphicsEnvironment
.getLocalGraphicsEnvironment();
Font[] font = genv.getAllFonts();
values = Arrays.asList(font);
}
public void exec() {
for (Font font : values) {
System.out.println(getLabel(font));
}
}
public List<Font> getValues() {
return values;
}
public String getLabel(Font font) {
String s = font.getName();
if (!font.getName().equals(font.getFontName())) {
s = s + " [" + font.getFontName() + "]";
}
return s;
}
public static void main(String[] args) {
FontList app = new FontList();
app.exec();
}
}
簡単ですね!