利用可能なFont名を入手する
GraphicsEnvironment classを使って、利用可能なFont名が入手可能です。プラットフォームにインストールされているフォント名が入手されます。
下のsampleでは利用可能な論理フォント名と、フォントファミリー名を入手し、JLabelに表示しています。
実行結果は、左の列が論理フォント名で表示、右の列がフォントファミリー名で表示、MS-Windows98で実行したものです。
/*
* Get Available fonts on local system.
* JDK1.2
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class ExamFontAvailable {
public static void main(String args[]) {
JTextArea jta1, jta2;
JFrame jf = new JFrame("Available Font");
jf.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
});
// get Fonts Logical names
jta1 = new JTextArea("Fonts Logical names" + "\n\n");
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
Font fonts[] = ge.getAllFonts();
for (int idx = 0; idx < fonts.length; idx++ ) {
jta1.append( fonts[idx].getName() + "\n");
}
// get Fonts Family names
jta2 = new JTextArea("Fonts Family names" + "\n\n");
jta2.setBackground(Color.lightGray);
String font_family[] = ge.getAvailableFontFamilyNames();
for (int idx = 0; idx < font_family.length; idx++ ) {
jta2.append( font_family[idx] + "\n");
}
jf.getContentPane().add(jta1, BorderLayout.CENTER);
jf.getContentPane().add(jta2, BorderLayout.EAST);
jf.pack();
jf.setLocation(50, 50);
jf.setVisible(true);
}
}
|
![]() |
||
| GraphicsEnvironment class GraphicsEnvironment クラスを使って、プラットフォーム上でJavaが使用できるFontの 一覧が入手できます。 |
||
| getAllFonts() method 戻り値としてFontの配列が戻されます。 |
||
| getAvailableFontFamilyNames() method 戻り値としてフォントファミリー名の文字列が戻されます。 |
||