Я провел все утро, изучая шрифты Java. Существует множество ограничений, некоторые из которых сняты в Java 1.6. У меня нет ответов, но у меня есть некоторая информация, которая может оказаться полезной.
Java различает внутренние шрифты системы и созданные шрифты. (Вспышка новостей для Sun: было бы неплохо прояснить это с помощью подклассов!) Системные шрифты выглядят как шрифты, установленные в JRE, возможно, плюс некоторые из шрифтов, установленных в вашей системе. Но, видимо, не все шрифты установлены в вашей системе; У меня тоже есть adobe-helvetica в моей системе Linux, но он не доступен из Java под любым именем, которое я могу придумать.
Между тем, вы можете создавать шрифты из файла шрифтов с помощью метода Font.createFont (). Вы должны указать тип файла шрифта. Единственные константы, которые я нашел для определения этих типов в классе Font, это TRUETYPE_FONT и TYPE1_FONT. Таким образом, похоже, что если шрифты PCF доступны, это не делается явным путем предоставления константы для их указания. Может быть, кто-то еще знает больше. В Интернете я видел некоторую информацию об использовании растровых шрифтов в Java ME, поэтому должно быть возможно использование других типов шрифтов.
После создания созданного шрифта вы можете добавить его в концепцию доступных шрифтов JVM с помощью вызова GraphicsEnvironment.registerFont (), но это доступно только в Java 1.6 и более поздних версиях.