sun在线教材之-java 2d 文本指南-第一课 使用字体

时间:2021-12-27 22:17:29

 

 

 

 

Training Index

2D文本指南


第一课: 使用字体

作者: Monica Pawlan
September 1998

翻译: Cherami Liumin
2001年11月

[目录] [下一课>>]

艺术字本质上是具有字体的简单文本。字体定义了文本串的大小和总体的外观。

这一课描述了如何使用增强的 java.awt.Font 类创建字体。下一课解释如何使用字体创建和绘制艺术字。


什么是字体?

sun在线教材之-java 2d 文本指南-第一课 使用字体

字体是一套具有一个点尺寸和外观的字符类型集合。例如所有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

创建和派生字体

sun在线教材之-java 2d 文本指南-第一课 使用字体 创建一个字体的最简单的方法是指定字体名,大小和式样。一旦你有一个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对象并绘制艺术字,这是下一课的主题。