字体类Font的使⽤
字体是⼀套具有⼀个点尺⼨和外观的字符的类型集合。例如所有10点Helvetica英⽂字符和符号组成⼀个字体。在特定的打印系统中字符是⼀个字母或者数⼦符号,⽽当它被提交(render)后 ,⼀个形状(shape)就代表这个字符,那个形状就是字形(glyph)。字体是从字形创建的,⼀个字形是⼀个位映象图像(bit-mapped image),它定义字体中的字符和符号的外观。同⼀字体家族的字体都有相似的外观,因为他们使⽤同⼀个字形创建。同样的,不同的字体家族使⽤不同的字形得到相互区分的外观。⼀个字体家族不但由具有相似外观的字体组成,还包括不同的⼤⼩和式样。Helvetica 10 点⿊体和Helvetica 12 point 斜体是同⼀家族中的两个不同字体,⽽Times Roman 8点⿊体和Times Roman 10 点普通体是另⼀个家族的两个不同字体。在字体中,字符编码是⼀个字符代码到字形代码的映射表。Java
2D(tm) API 使⽤Unicode 编码。
对于⼀个字体,它有逻辑名(logical name)、家族名(family name)和字体名(font name/font face name),逻辑名是被映射到平台上可⽤的特定字体的名字,它⽤字符形状标识字体名,对⼀个Font对象调⽤ getName⽅法可以得到逻辑名;家族名是字体家族的名字,它通过不同的外观决定排版样式,例如Helvetica 或者 Times Roman,调⽤getFamily可以得到它的家族名;字体名代表家族中的特定字体,例如Helvetica Bold,字体名是⽤来指定字体的名字,它是本机系统上的实际字体的名字,调⽤getFontName得到字体名。
⼀个Font对象可以代表系统资源中的⼀个字体的实例,并且可以从⼀个已经存在的Font对象上派⽣出具有不同⼤⼩,样式,变换(位置,倾斜,缩放或者旋转)或者属性映射的字体对象。对于特定系统,可以调⽤GraphicsEnviroment类的⽅法getAllFonts得到所有可⽤字体,这些字体对象的⼤⼩为1,转换⽅式相同,字体属性为缺省,也可以调⽤getAvailableFontFamilyNames(⽅法得到所有可⽤字体家族名的字符串数组。下⾯的⼀段程序综合演⽰了Font类和相关类的基本使⽤⽅法 :
String temp[];
LocalGraphicsEnvironment().getAvailableFontFamilyNames();
抽象类的使用//GraphicsEnvironment为抽象类,不能直接实例化,能过getLocalGraphicsEnvironment()获取对象,调
⽤ //getAvaibleFontFamilyNames()得到系统字体的FamilyName字符串数组。
for (int i=0;i<temp.length ;i++ )
{
System.out.println(temp[i]);
}
Font boldFont = new Font("Helvetica", Font.BOLD, 12);
Font italicDerived =
boldFont.deriveFont(Font.ITALIC, 12);
Font plainDerived =
boldFont.deriveFont(Font.PLAIN, 14);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论