2
當我請求Java下的字體時,如果該字體不存在,我需要確定它映射的字體(以便我可以記錄正在使用的映射)。在Java 1.6的我可以使用:如何確定我在Java中獲得所需字體的字體?
Font logicalFont = new java.awt.Font(fontname, java.awt.Font.PLAIN, 12);
for (int i = 0; i < FontManager.getRegisteredFonts().length; i++) {
Font2D font2D = FontManager.getRegisteredFonts()[i];
if (font2D instanceof CompositeFont && font2D.getFontName(Locale.getDefault()).equals(logicalFont.getFontName())) {
PhysicalFont physicalFont = ((CompositeFont) font2D).getSlotFont(0);
log.warn("The requested font '" + fontname + "' does not exist on this system. Substituting the font '" + physicalFont.getFamilyName(Locale.getDefault()) + "'");
return;
}
}
但在Java 1.7 FontManager沒有getRegisteredFonts()靜態成員(我認爲它實際上是一個接口現在)。那麼我怎樣才能獲得映射?
謝謝 - 戴夫