利用可能な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 戻り値としてフォントファミリー名の文字列が戻されます。 |
|