Example

Available system fonts

For maximum portability, use the generic font names,
but you can use any font installed in the system.
It is suggested to use a font family name, and create the
font from that, but you can also use the fonts directly.
You can get an array of all available font family names or all fonts.

// Font info is obtained from the current graphics environment.
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
//--- Get an array of font names (smaller than the number of fonts)
String[] fontNames = ge.getAvailableFontFamilyNames();
//--- Get an array of fonts. It's preferable to use the names above.
Font[] allFonts = ge.getAllFonts();

Example

Unicode fonts

If you're running a recent version of Windows, you probably already have
a Unicode font installed, Arial Unicode MS, which is a very extensive Unicode
font. If you're not running windows, you can get a the Bitstream Cyberbit
font, which is quite complete (about 30,000 characters), but lacks a few of the the lesser used
characters (eg, Old Cyrillic).