Список имен доступных шрифтов можно просмотреть следующими операторами:
Font[] fonts = Toolkit.getGraphicsEnvironment.getAllFonts(); for (Font f: fonts)
System.out.println(f.getFontName());
В состав Java SE входит семейство шрифтов Lucida. Установив JDK, вы можете быть уверены, что эти шрифты есть в вашей системе.
Таблицы сопоставления логических и физических имен шрифтов находятся в виртуальной машине Java или в файлах с именами:
□ fonteonfig.properties; □ fonteonfig.2003.properties;
□ fontconfig.Me.properties; □ fontconfig.RedHat.properties
□ fontconfig.2000.XP.properties; и т. д.
□ fontconfig.XP.properties;
Эти файлы должны быть расположены в JDK в каталоге jdk1.7.0/jre/lib или каком-либо другом подкаталоге lib корневого каталога JDK той машины, на которой выполняется приложение.
Файлы хранятся в исходном виде, с расширением src, и в откомпилированном виде, с расширением bfc.
Нужный файл выбирается виртуальной машиной Java по названию операционной системы. Если такой файл не найден, то применяется файл fonteonfig.properties, не соответствующий никакой конкретной операционной системе.
Поэтому можно оставить в системе только один файл fontconfig.properties, переписав в него содержимое нужного файла или создав файл заново. Для любой операционной системы будет использоваться именно он.
В листинге 9.1 показано сокращенное содержимое файла fontconfig.properties.src из Java SE 7 для платформы MS Windows.
Листинг 9.1. Примерный файл fontconfig.properties.src
#
# Copyright © 2003, 2010, Oracle and/or its affilates. All rights reserved.
#
# Version version=1
# Component Font Mappings allfonts.chinese-ms936=SimSun allfonts.chinese-gb18030=SimSun-18030 allfonts.chinese-hkscs=MingLiU HKSCS allfonts.devanagari=Mangal allfonts.dingbats=Wingdings allfonts.lucida=Lucida Sans Regular allfonts.symbol=Symbol
allfonts.thai=Lucida Sans Regular
serif.plain.alphabetic=Times New Roman serif.plain.chinese-ms950=MingLiU serif.plain.hebrew=David serif.plain.japanese=MS Mincho serif.plain.korean=Batang
serif.bold.alphabetic=Times New Roman Bold
# И так далее
serif.italic.alphabetic=Times New Roman Italic
# И так далее
serif.bolditalic.alphabetic=Times New Roman Bold Italic
# И так далее
sansserif.plain.alphabetic=Arial
# И так далее
monospaced.plain.alphabetic=Courier New
# И так далее
dialog.plain.alphabetic=Arial
# И так далее
dialoginput.plain.alphabetic=Courier New
# И так далее
# Search Sequences
sequence.allfonts=alphabetic/default,dingbats,symbol
# И так далее
# Exclusion Ranges
exclusion.alphabetic=0700-1e9f,1f00-20ab,20ad-f8ff exclusion.chinese-gb18030=0390-03d6,2200-22ef,2701-27be exclusion.hebrew=0041-005a,0060-007a,007f-00ff,20ac-20ac
# Monospaced to Proportional width variant mapping
# (Experimental private syntax) proportional.MS Gothic=MS PGothic proportional.MS Mincho=MS PMincho proportional.MingLiU=PMingLiU
# Font File Names filename.Arial=ARIAL.TTF filename.Arial Bold=ARIALBD.TTF filename.Arial Italic=ARIALI.TTF filename.Arial Bold Italic=ARIALBI.TTF filename.Courier New=COUR.TTF filename.Courier New Bold=COURBD.TTF filename.Courier New Italic=COURI.TTF filename.Courier New Bold Italic=COURBI.TTF
filename.Times New Roman=TIMES.TTF
filename.Times New Roman Bold=TIMESBD.TTF
filename.Times New Roman Italic=TIMESI.TTF
filename.Times New Roman Bold Italic=TIMESBI.TTF
filename.SimSun=SIMSUN.TTC
filename.SimSun-18030=SIMSUN18030.TTC
filename.MingLiU=MINGLIU.TTC
filename.PMingLiU=MINGLIU.TTC
filename.MingLiU HKSCS=hkscsm3u.ttf
filename.David=DAVID.TTF
filename.David Bold=DAVIDBD.TTF
filename.MS_Mincho=MSMINCHO.TTC
filename.MS_PMincho=MSMINCHO.TTC
filename.MS_Gothic=MSGOTHIC.TTC
filename.MS_PGothic=MSGOTHIC.TTC
filename.Gulim=gulim.TTC
filename.Batang=batang.TTC
filename.GulimChe=gulim.TTC
filename.Lucida Sans Regular=LucidaSansRegular.ttf filename.Mangal=MANGAL.TTF filename.Symbol=SYMBOL.TTF filename.Wingdings=WINGDING.TTF
filename.Arial=ARIAL.TTF
Теперь посмотрите на другие строки листинга 9.1. Строка
exclusion.alphabetic=0700-1e9f,1f00-20ab,20ad-f8ff
означает, что в алфавитных шрифтах не станут отыскиваться начертания (glyphs) символов с кодами в диапазонах '\u07 00' — '\u1e9f', '\u1f00 ' —' \u20ab' и ' \u20ad' —' \ uf8ff'.
Они будут взяты из шрифта, следующего далее в строке