Font汉.docx

上传人:b****6 文档编号:12067563 上传时间:2023-06-04 格式:DOCX 页数:53 大小:34.33KB
下载 相关 举报
Font汉.docx_第1页
第1页 / 共53页
Font汉.docx_第2页
第2页 / 共53页
Font汉.docx_第3页
第3页 / 共53页
Font汉.docx_第4页
第4页 / 共53页
Font汉.docx_第5页
第5页 / 共53页
Font汉.docx_第6页
第6页 / 共53页
Font汉.docx_第7页
第7页 / 共53页
Font汉.docx_第8页
第8页 / 共53页
Font汉.docx_第9页
第9页 / 共53页
Font汉.docx_第10页
第10页 / 共53页
Font汉.docx_第11页
第11页 / 共53页
Font汉.docx_第12页
第12页 / 共53页
Font汉.docx_第13页
第13页 / 共53页
Font汉.docx_第14页
第14页 / 共53页
Font汉.docx_第15页
第15页 / 共53页
Font汉.docx_第16页
第16页 / 共53页
Font汉.docx_第17页
第17页 / 共53页
Font汉.docx_第18页
第18页 / 共53页
Font汉.docx_第19页
第19页 / 共53页
Font汉.docx_第20页
第20页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Font汉.docx

《Font汉.docx》由会员分享,可在线阅读,更多相关《Font汉.docx(53页珍藏版)》请在冰点文库上搜索。

Font汉.docx

Font汉

java.awt

类Font

java.lang.Object

java.awt.Font

所有已实现的接口:

Serializable

直接已知子类:

FontUIResource

publicclassFont

extendsObject

implementsSerializable

Font类表示字体,可以使用它以可见方式呈现文本。

字体提供将字符序列映射到字形序列所需要的信息,以便在Graphics对象和Component对象上呈现字形序列。

字符和字形

字符是表示项的符号(如字母、数字或具有抽象意义的标点)。

例如,'g'(G的拉丁小写字母)是一个字符。

字形是用来呈现字符或字符序列的一种形状。

在简单的书写系统(如拉丁文)中,通常一个字形就表示一个字符。

但在一般情况下,字符和字形并没有一对一的对应关系。

例如,字符'á'A的带重音符号的拉丁小写字母可以由两个字形表示:

一个是'a',一个是'´'。

另一方面,两字符的字符串"fi"可以由单个字形"fi"连字表示。

在复杂的书写系统(如阿拉伯语或南亚和东南亚语言)中,字符与字形之间的关系可能更复杂,涉及到依赖于上下文的字形选择以及字形重排序。

字体封装了呈现所选择的字符集所需的字形集,还封装了将字符序列映射到相应的字形序列所需的表。

物理字体和逻辑字体

JavaPlatform可以区分两种字体:

物理字体和逻辑字体。

物理字体是实际的字体库,包含字形数据和表,这些数据和表使用字体技术(如TrueType或PostScriptType1)将字符序列映射到字形序列。

JavaPlatform的所有实现都支持TrueType字体;对其他字体技术的支持是与实现相关的。

物理字体可以使用字体名称,如Helvetica、Palatino、HonMincho或任意数量的其他字体名称。

通常,每种物理字体只支持有限的书写系统集合,例如,只支持拉丁文字符,或者只支持日文和基本拉丁文。

可用的物理字体集合随配置的不同而有所不同。

要求特定字体的应用程序可以使用createFont方法来捆绑这些字体,并对其进行实例化。

逻辑字体是由必须受所有Java运行时环境支持的Java平台所定义的五种字体系列:

Serif、SansSerif、Monospaced、Dialog和DialogInput。

这些逻辑字体不是实际的字体库。

此外,由Java运行时环境将逻辑字体名称映射到物理字体。

映射关系与实现和通常语言环境相关,因此它们提供的外观和规格各不相同。

通常,为了覆盖庞大的字符范围,每种逻辑字体名称都映射到几种物理字体。

同级的AWT组件(如Label和TextField)只可以使用逻辑字体。

有关使用物理字体或逻辑字体的相对优势和劣势的讨论,请参阅InternationalizationFAQ文档。

字体外观和名称

Font可以有多个外观,如heavy、medium、oblique、gothic和regular。

所有这些外观都有相似的排字设计。

可以从Font对象获得三种不同的名称。

逻辑字体名称只是用来构造字体的名称。

字体外观名称,或外观名称是特定字体外观的名称,如HelveticaBold。

系列名称是字体系列的名称,用来确定多种外观(如Helvetica)的排字设计。

Font类表示字体外观集合中字体外观的实例,字体外观集合位于主机系统的系统资源中。

例如,ArialBold和CourierBoldItalic是字体外观。

有几个Font对象与字体外观相关,每个对象在大小、样式、变换和字体特征上都有所不同。

GraphicsEnvironment类的getAllFonts方法返回系统中所有可用字体外观组成的数组。

这些字体外观被作为Font对象返回,对象的大小为1,具有恒等变换和默认字体特征。

这些基本字体可以用来派生新的Font对象,使之具有变化的大小、样式、变换和字体特征,这些可以通过此类中的deriveFont方法实现。

Font和TextAttribute

Font支持大多数TextAttribute。

这使得一些操作(如呈现带下划线的文本)变得更方便,因为没必要再显式构造一个TextLayout对象。

通过使用TextAttribute值的Map来构造或派生属性,可以在Font上设置属性。

一些TextAttributes值是不可序列化的,因此尝试序列化具有这样的值的Font实例不会使它们获得序列化。

这意味着从这样一个流实现序列化的Font不会等同于包含不可序列化属性的原始Font。

这应该是很少出现的一个问题,因为这些属性通常只使用在特殊情况下并且不可能被序列化。

∙FOREGROUND和BACKGROUND使用Paint值。

子类Color是可序列化的,而GradientPaint和TexturePaint是不可序列化的。

∙CHAR_REPLACEMENT使用GraphicAttribute值。

子类ShapeGraphicAttribute和ImageGraphicAttribute是不可序列化的。

∙INPUT_METHOD_HIGHLIGHT使用InputMethodHighlight值,它是不可序列化的。

请参阅InputMethodHighlight。

创建Paint和GraphicAttribute的自定义子类的客户机可以使它们可序列化并避免此问题。

使用输入方法高亮显示的客户机可以将这些转换为特定于平台的属性,以便在当前平台上高亮显示它们并在Font上设置它们,以此作为解决方法。

基于Map的构造方法和deriveFontAPI忽略了FONT属性,并且没有通过Font保留它;如果FONT属性可能存在,则应该使用staticgetFont(java.util.Map)方法。

有关更多信息,请参阅TextAttribute.FONT。

一些属性会带来额外的呈现开销,并且可能调用布局。

如果某一Font具有这样的属性,那么hasLayoutAttributes方法将返回true。

注:

字体旋转可能导致文本基线也跟着旋转。

为了应对这种(很少见的)可能性,可以指定字体API返回字体规格,并使参数“位于相对于基线的坐标中”。

这将'x'坐标映射到沿基线的某段距离处(正x表示沿基线的正方向),将'y'坐标映射到位于'x'坐标的基线垂直方向的某段距离处(正y表示从基线向量顺时针旋转90度)。

用于实现这些的API特别重要,它们被调出,就像具有“相对于基线的坐标”一样。

另请参见:

序列化表格

字段摘要

static int

BOLD

          粗体样式常量。

static int

CENTER_BASELINE

          布置文本时,在表意文字的脚本(如中文、日文和韩文)中使用的基线。

static String

DIALOG

          逻辑字体"Dialog"的规范系列名称的String常量。

static String

DIALOG_INPUT

          逻辑字体"DialogInput"的规范系列名称的String常量。

static int

HANGING_BASELINE

          布置文本时,在Devanigiri和类似脚本中使用的基线。

static int

ITALIC

          斜体样式常量。

static int

LAYOUT_LEFT_TO_RIGHT

          layoutGlyphVector的标志,指示文本是从左到右的,这由Bidi分析确定。

static int

LAYOUT_NO_LIMIT_CONTEXT

          layoutGlyphVector的标志,指示不应该检查指定limit之后的char数组中的文本。

static int

LAYOUT_NO_START_CONTEXT

          layoutGlyphVector的标志,指示不应该检查指定start之前的char数组中的文本。

static int

LAYOUT_RIGHT_TO_LEFT

          layoutGlyphVector的标志,指示文本是从右到左的,这由Bidi分析确定。

static String

MONOSPACED

          逻辑字体"Monospaced"的规范系列名称的String常量。

protected String

name

          Font的逻辑名称,它被传递到构造方法中。

static int

PLAIN

          普通样式常量。

protected float

pointSize

          以float形式表示的Font的磅值大小。

static int

ROMAN_BASELINE

          布置文本时,在大多数Roman脚本中使用的基线。

static String

SANS_SERIF

          逻辑字体"SansSerif"的规范系列名称的String常量。

static String

SERIF

          逻辑字体"Serif"的规范系列名称的String常量。

protected int

size

          Font的磅值大小,舍入为整数。

protected int

style

          Font的样式,它被传递到构造方法中。

static int

TRUETYPE_FONT

          标识TRUETYPE类型的字体资源。

static int

TYPE1_FONT

          标识TYPE1类型的字体资源。

 

构造方法摘要

protected

Font(Font font)

          根据指定font创建一个新Font。

 

Font(Map

extendsAttributedCharacterIterator.Attribute,?

> attributes)

          创建一个具有指定属性的新Font。

 

Font(String name,int style,int size)

          根据指定名称、样式和磅值大小,创建一个新Font。

 

方法摘要

 boolean

canDisplay(char c)

          检查此Font是否具有指定字符的字形。

 boolean

canDisplay(int codePoint)

          检查此Font是否具有指定字符的字形。

 int

canDisplayUpTo(char[] text,int start,int limit)

          指示此Font是否可以显示指定text中从start开始至limit结束的所有字符。

 int

canDisplayUpTo(CharacterIterator iter,int start,int limit)

          指示此Font是否可以显示由iter指定的文本(从start开始至limit结束)。

 int

canDisplayUpTo(String str)

          指示此Font是否可以显示指定的String。

static Font

createFont(int fontFormat,File fontFile)

          返回一个使用指定字体类型和指定字体文件的新Font。

static Font

createFont(int fontFormat,InputStream fontStream)

          返回一个使用指定字体类型和输入数据的新Font。

 GlyphVector

createGlyphVector(FontRenderContext frc,char[] chars)

          根据此Font中的Unicodecmap将字符一一映射到字形,从而创建一个GlyphVector。

 GlyphVector

createGlyphVector(FontRenderContext frc,CharacterIterator ci)

        根据此Font中的Unicodecmap将指定字符一一映射到字形,从而创建一个GlyphVector。

 GlyphVector

createGlyphVector(FontRenderContext frc,int[] glyphCodes)

根据此Font中的Unicodecmap将字符一一映射到字形,从而创建一个GlyphVector。

 GlyphVector

createGlyphVector(FontRenderContext frc,String str)

          根据此Font中的Unicodecmap将字符一一映射到字形,从而创建一个GlyphVector。

static Font

decode(String str)

          返回str参数所描述的Font。

 Font

deriveFont(AffineTransform trans)

       通过复制当前Font对象并应用新的变换,创建一个新Font对象。

 Font

deriveFont(float size)

        通过复制当前Font对象并应用新的大小,创建一个新Font对象。

 Font

deriveFont(int style)

     通过复制当前的Font对象,并应用新的样式,创建一个新Font对象。

 Font

deriveFont(int style,AffineTransform trans)

       通过复制此Font对象并应用新样式和变换,创建一个新Font对象。

 Font

deriveFont(int style,float size)

          通过复制此Font对象并应用新样式和大小,创建一个新Font对象。

 Font

deriveFont(Map

extendsAttributedCharacterIterator.Attribute,?

> attributes)

          通过复制当前Font对象并应用新的字体属性集,创建一个新Font对象。

 boolean

equals(Object obj)

          将此Font对象与指定Object进行比较。

protected void

finalize()

          移除本机Font对象。

 Map

>

getAttributes()

          返回此Font中可用的字体属性的映射。

 AttributedCharacterIterator.Attribute[]

getAvailableAttributes()

          返回由此Font支持的所有属性的键。

 byte

getBaselineFor(char c)

          返回适合用来显示此字符的基线。

 String

getFamily()

          返回此Font的系列名称。

 String

getFamily(Locale l)

          返回此Font的系列名称(已经针对指定语言环境进行了本地化)。

static Font

getFont(Map

extendsAttributedCharacterIterator.Attribute,?

> attributes)

          返回适合于这些属性的Font。

static Font

getFont(String nm)

          从系统属性列表返回一个Font对象。

static Font

getFont(String nm,Font font)

          从系统属性列表获取指定的Font。

 String

getFontName()

          返回此Font的字体外观名称。

 String

getFontName(Locale l)

     返回此Font的字体外观名称(已经针对指定语言环境进行了本地化)。

 float

getItalicAngle()

          返回此Font的斜角。

 LineMetrics

getLineMetrics(char[] chars,int beginIndex,int limit,FontRenderContext frc)

          返回使用指定参数创建的LineMetrics对象。

 LineMetrics

getLineMetrics(CharacterIterator ci,int beginIndex,int limit,FontRenderContext frc)

          返回使用指定参数创建的LineMetrics对象。

 LineMetrics

getLineMetrics(String str,FontRenderContext frc)

          返回一个使用指定String和FontRenderContext创建的LineMetrics对象。

 LineMetrics

getLineMetrics(String str,int beginIndex,int limit,FontRenderContext frc)

          返回使用指定参数创建的LineMetrics对象。

 Rectangle2D

getMaxCharBounds(FontRenderContext frc)

          返回最大边界定义在FontRenderContext中的字符的边界。

 int

getMissingGlyphCode()

          返回此Font不具有指定的unicode字形时所使用的glyphCode代码点。

 String

getName()

          返回此Font的逻辑名称。

 int

getNumGlyphs()

          返回此Font中的字形数量。

 java.awt.peer.FontPeer

getPeer()

          已过时。

 现在,字体呈现与平台无关。

 String

getPSName()

          返回此Font的postscript名称。

 int

getSize()

          返回此Font的磅值大小,舍入为整数。

 float

getSize2D()

          返回此Font的磅值大小(以float值表示)。

 Rectangle2D

getStringBounds(char[] chars,int beginIndex,int limit,FontRenderContext frc)

          返回指定FontRenderContext指定字符数组的逻辑边界。

 Rectangle2D

getStringBounds(CharacterIterator ci,int beginIndex,int limit,FontRenderContext frc)

          返回指定FontRenderContext中针对指定CharacterIterator进行索引的字符的逻辑边界。

 Rectangle2D

getStringBounds(String str,FontRenderContext frc)

          返回指定FontRenderContext中指定String的逻辑边界。

 Rectangle2D

getStringBounds(String str,int beginIndex,int limit,FontRenderContext frc)

          返回指定FontRenderContext中指定String的逻辑边界。

 int

getStyle()

          返回此Font的样式。

 AffineTransform

getTransform()

          返回与此Font相关的变换的副本。

 int

hashCode()

          返回此Font的哈希码。

 boolean

hasLayoutAttributes()

          如果此Font包含需要额外布局处理的属性,则返回true。

 boolean

hasUniformLineMetrics()

          检查此Font是否具有统一的行规格。

 boolean

isBold()

          指示此Font对象的样式是否为BOLD。

 boolean

isItalic()

          指示此Font对象的样式是否为ITALIC。

 boolean

isPlain()

          指示此Font对象的样式是否为PLAIN。

 boolean

isTransformed()

          指示此Font对象是否具有影响其大小以及Size属性的变换。

 GlyphVector

layoutGlyphVector(FontRenderContext frc,char[] text,int start,int limit,int flags)

          返回一个新GlyphVector对象,执行完整的文本布局(如有可能)。

 String

toString()

          将此Font对象转换为String表示形式。

 

从类java.lang.Object继承的方法

clone,getClass,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2