- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java标准教程:Java 2D绘图■?第4章使用Text
木节介绍文木API的用法,以及他们的渲染能力。至今为止,您已经有了基 本的Java 2D文本API,同吋知道如何设置字体和位置,以及绘制文本。
本节扩展了这些知识,同时更深入的介绍了 Jewel 2D文本展示的知识。 这些主题在以下几个部分中讨论。
选择字体
木节介绍如何使用Font类中的方法决定系统中存在哪些字体,创建一个 Font对象,同吋从字体家族中获得信息。
测量字体
本节介绍了如何使用FontMetrics类的实例测量文本。
高级文本展示
木节解释如何定位和渲染一段有风格的文木,如何展示抗锯齿的文木, 以及如何使用文本属性定义文本风格。
1?1选择字体
Java 2D定义了以下五个逻辑字体家族:
Dialog
Dialoginput
Monospaced
Serif
SansSerif
这些字体在任何Java平台都可得,同吋可以当做底层平台中有相应属性字 体的别名。Serif字体是和Times New Romein类似的字体,通常用來打印。Sans Serif字体通常在屏幕中使用。
这些字体定制成用户的本地化信息。同时,这些字体支持大范围的代码点 (unicode 字符集)。
除了家族之外,字体还有其他属性,最重要的是风格和大小。风格是粗体和 斜体。
默认的Java 2D字体是12pt Dialog.这个字体是通常用在普通的72 - 120 DPI 现实设备中的字体大小。应用程序可以通过下面的方式创建字体:
Font font 二 new Font(Dialog, Font. PLAIN, 12);
除了逻辑字体之外,Java软件支持访问系统中已经安装的其他字体。所有可 找到的字体的可以通过以下方式得到:
GraphicsEnvironmenl ge =
GraphicsEnvironment. getLocalGraphicsEnvironment();
String []fontFamilics = gc. getAvailablcFontFamilyNamcs();
FontSelector示例程序展示了如何定位和选择这些字体。您可以使用这个例 子查看Sans Serif在您的系统中是什么。其他字体都称为物理字体。
有吋,应用程序不能依赖于已经安装到系统中的字体,通常因为这些是自定 义字体,在系统屮不存在。这种情况下,应用程序必须包含字体。本科展示如何 获取TrueType字体这是现代操作系统中最常用的字体将它转换成Font对象
您可以使用这些方法之一:
Font java. awt. Fon t. createF onl(inl fonlFormat, In putStream in);
Font java, awt. Font. createFont(int fontFormat, File fontFile);
要识别一个 TrueType 字体,fontFormat 必须是常量 Font. TRUETYPE_F0NTo
Font font 二 Font. createFont (Font. TRUETYPE FONT, new F订e(〃A?ttf〃));
在这种情况下从文件中访问直接访问字体必须是很方便的。然而,如果您的 代码不能访问文件系统资源,又或者字体被打包在应用程序或applet的JAR文 件中,可能需要InputStreamo
被返冋的Font实体可以和Font, deriveFont (..)方法-亠起使用,派生一个合 适的字体。例如
try {
/* Returned font is of pt size 1 */
Font font 二 Font. createFont(Font. TRUETYPE FONT, new
F订e(A? ttf〃));
/* derive and return a 12 pt version : need to use float otherwise
* it would be interpreted as style
*/
return font, deriveFont(12f);
} catch (lOException ioe);
} catch (FontFormatException ffe);
}
使用derivcFontO时很重要的,因为字体是由应用程序创建的,不是底层操 作系统的一部分。因为deriveFont作用于最初创建的字体,就没有这个限制。
这个问题的解决方案是在图形环境中注册新建的字体,例如:
try {
GraphicsEnvironment ge =
GraphicsEnvironmcnt? gctLocalGraphicsEnvironmcnt();
ge. re
文档评论(0)