创建和派生字体
什么是字体?
字体是一套具有一个点尺寸和外观的字符类型集合。例如所有10点Helvetica英文字符和符号组成一个字体。文本所使用的字体定义特定的外观,大小和式样(黑体,斜体或者普通体)。
字体如何定义特定外观呢?字体是从字形(glyphs)创建的,一个字形是一个位映象图像,它定义字体中的字符和符号的外观。同一字体家族的字体都有相似的外观,因为他们使用同一个字形创建。同样的,不同的字体家族使用不同的字形得到相互区分的外观。
一个字体家族不但由具有相似外观的字体组成,还包括不同的大小和式样。Helvetica 10 点黑体和Helvetica 12 point 斜体是同一家族中的两个不同字体,而Times Roman 8 点黑体和Times Roman 10 点普通体是另一个家族的两个不同字体。
查找可用字体
为了使用一个字体,你需要创建一个Font
对象,而为了做到这个,你需要知道系统中有什么字体可用以及它们的名字。字体有逻辑名、家族名和字体名。逻辑名是被映射到平台上可用的特定字体的名字。
-
为了得到一个
Font
对象的逻辑名,调用 java.awt.Font.getName
。
家族名是字体家族的名字,它通过不同的外观决定排版图案,例如Helvetica 或者 Times Roman。
-
为了得到一个
Font
对象的家族名,调用 java.awt.Font.getFamily
。
字体名代表家族中的特定字体,例如Helvetica Bold。
-
为了得到一个
Font
对象的字体名,调用java.awt.Font.getFontName
,为了决定系统上哪些字体可用,调用 java.awt.GraphicsEnvironment.getAllFonts
。
创建和派生字体
创建一个字体的最简单的方法是指定字体名,大小和式样。一旦你有一个Font
对象,你就可以通过调用Font.deriveFont
方法在存在的字体上派生任意个新Font
对象并指定新的大小,样式,变换(位置,倾斜,缩放或者旋转)或者属性映射。
Font boldFont = new Font("Helvetica", Font.BOLD, 12);
Font italicDerived =
boldFont.deriveFont(Font.ITALIC, 12);
Font plainDerived =
boldFont.deriveFont(Font.PLAIN, 14);
一旦你有一个字体,你就可以用它创建一个TextLayout
对象并绘制艺术字,这是下一课的主题。