- java.lang.Object
-
- java.awt.Font
-
- All Implemented Interfaces:
-
Serializable
- 已知直接子类:
-
FontUIResource
public class Font extends Object implements Serializable
Font类表示字体,用于以可见的方式呈现文本。 字体提供将字符序列映射到字形序列所需的信息,并在Graphics和Component对象上呈现字形序列。字符和字形
字符是以抽象的方式表示诸如字母,数字或标点符号的项目的符号。 例如,'g',LATIN SMALL LETTER G,是一个字符。字形是用于渲染字符或字符序列的形状。 在简单的书写系统中,比如拉丁文,通常一个字形代表一个字符。 然而,一般来说,字符和字形不具有一一对应关系。 例如,字符“¡”拉丁小写字母A与ACUTE,可以由两个字形表示:一个用于'一',一个用于'Â'。 另一方面,双字符串“fi”可以由单个字形,“fi”连字符表示。 在复杂的写作系统中,如阿拉伯语,南亚和东南亚写作系统,字符和字形之间的关系可能更复杂,涉及字形的上下文相关选择以及字形重新排序。 字体封装渲染所选字符集所需的字形集合以及将字符序列映射到相应字符序列所需的表。
物理和逻辑字体
Java平台区分两种字体: 物理字体和逻辑字体。物理字体是包含使用TrueType或PostScript Type 1等字体技术从字符序列到字形序列映射的字形数据和表的实际字体库。Java Platform的所有实现必须支持TrueType字体; 对其他字体技术的支持依赖于实现。 物理字体可以使用诸如Helvetica,Palatino,HonMincho或任何数量的其他字体名称。 通常,每个物理字体仅支持有限的一套写入系统,例如只有拉丁字符,或仅支持日语和基本拉丁语。 可用物理字体的集合在配置之间不同。 需要特定字体的应用程序可以使用
createFont方法进行捆绑并实例化。逻辑字体是由Java平台定义的五个字体系列,必须由任何Java运行时环境支持:Serif,SansSerif,Monospaced,Dialog和DialogInput。 这些逻辑字体不是实际的字体库。 而是通过Java运行时环境将逻辑字体名称映射到物理字体。 映射是实现,通常与区域设置相关,所以它们的外观和指标有所不同。 通常,每个逻辑字体名称映射到几个物理字体以覆盖大范围的字符。
对等AWT组件,如
Label和TextField,只能使用逻辑字体。为相对的优点和使用物理或逻辑字体的缺点的讨论,请参阅Physical and Logical Fonts在The Java Tutorials文档。
字体面和名称
AFont可以有很多面孔,如重,中,斜,哥特和常规。 所有这些面孔都具有相似的印刷设计。有三种不同的名称可以从一个
Font对象获得。 逻辑字体名称只是用于构造字体的名称。 字体名称或简称字体名称是特定字体的名称,如Helvetica Bold。 姓氏是字体系列的名称,用于确定多个面部的排版设计,如Helvetica。Font类表示来自主机系统的系统资源中存在的字体集合的字体的实例。 例如,Arial Bold和Courier Bold Italic是字体。 可以有几个与字体相关联的Font对象,每个对象的大小,样式,变换和字体功能都有所不同。由于平台限制(例如没有合适的平台字体来实现逻辑字体),字形可能并不总是被渲染为请求的属性(例如,字体和样式)。
GraphicsEnvironment类的getAllFonts方法返回系统中可用的所有字体阵列。 这些字体面将返回为Font对象,大小为1,身份转换和默认字体特征。 然后,这些基本字体可以用于通过本类中的deriveFont方法来导出具有不同大小,样式,变换和字体功能的新的Font对象。Font和TextAttribute
Font支持大多数TextAttributes。 这使得一些操作(如渲染下划线的文本)变得方便,因为不需要明确构造一个TextLayout对象。 可以使用Map的TextAttribute值构造或导出属性来设置字体。一些
TextAttributes的值不可序列化,因此尝试序列化具有此类值的Font的实例将不会将其序列化。 这意味着从这样一个流反序列化的字体将不会与包含不可序列化属性的原始字体相等。 这很少会引起问题,因为这些属性通常仅在特殊情况下使用,并且不太可能被序列化。-
FOREGROUND和BACKGROUND使用Paint值。 子类Color是可序列化的,而GradientPaint和TexturePaint是。 -
CHAR_REPLACEMENT使用GraphicAttribute值。 子类ShapeGraphicAttribute和ImageGraphicAttribute不可序列化。 -
INPUT_METHOD_HIGHLIGHT使用InputMethodHighlight值,这是不可序列化的。 见InputMethodHighlight。
创建
Paint和GraphicAttribute自定义子类的客户端可以使其可序列化,并避免此问题。 使用输入法亮点的客户端可以将它们转换为当前平台上该突出显示的平台特定属性,并将其设置为字体作为解决方法。基于
Map的构造函数和deriveFontAPI忽略FONT属性,并且它不会被字体保留; 如果FONT属性可能存在,则应使用静态getFont(java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>)方法。 有关详细信息,请参阅TextAttribute.FONT。几个属性将导致额外的渲染开销和潜在的调用布局。 如果一个
Font具有这样的属性,那么方法将返回true。hasLayoutAttributes()注意:字体旋转可以使文本基线旋转。 为了解决这种(罕见)可能性,指定字体API返回度量值并在“基线相对坐标”中获取参数。 这将“x”坐标映射到沿着基线的前进(正x沿着基线向前),“y”坐标到“x”处的基线垂直距离(正y为顺时针90度从基线矢量)。 这是特别重要的API被称为具有“基线相对坐标”。
- 另请参见:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field 描述 static intBOLD大胆的风格常数。static intCENTER_BASELINE中文,日文,韩文等表意文字的基线。static StringDIALOG逻辑字体“对话框”的规范系列名称的字符串常量。static StringDIALOG_INPUT逻辑字体“DialogInput”的规范系列名称的字符串常量。static intHANGING_BASELINEDevanagari中使用的基线和类似的脚本。static intITALIC斜体风格常数。static intLAYOUT_LEFT_TO_RIGHT一个用于布局GlyphVector的标志,指示由Bidi分析确定的文本是从左到右。static intLAYOUT_NO_LIMIT_CONTEXT一个用于layoutGlyphVector的标志,指示在指定的限制之后的char数组中的文本不应被检查。static intLAYOUT_NO_START_CONTEXTlayoutGlyphVector的一个标志,指示在指定的开始之前的char数组中的文本不应被检查。static intLAYOUT_RIGHT_TO_LEFT一个标记为layoutGlyphVector的标志,指示由Bidi分析确定的文本是从右到左。static StringMONOSPACED逻辑字体“Monospaced”的规范系列名称的字符串常量。protected Stringname这个Font的逻辑名称,传递给构造函数。static intPLAIN平原风格常数。protected floatpointSize该点大小Font在float。static intROMAN_BASELINE大多数罗马脚本在布局文本时使用的基线。static StringSANS_SERIF逻辑字体“SansSerif”的规范系列名称的字符串常量。static StringSERIF逻辑字体“Serif”的规范系列名称的字符串常量。protected intsize该点的大小为Font,四舍五入为整数。protected intstyle这种Font的样式,传递给构造函数。static intTRUETYPE_FONT识别TRUETYPE类型的字体资源。static intTYPE1_FONT识别类型TYPE1的字体资源。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 booleancanDisplay(char c)检查这个Font是否具有指定字符的字形。booleancanDisplay(int codePoint)检查Font是否具有指定字符的字形。intcanDisplayUpTo(char[] text, int start, int limit)指示此是否Font可以显示在指定的字符text在起始start和在结束limit。intcanDisplayUpTo(String str)指示Font是否可以显示指定的String。intcanDisplayUpTo(CharacterIterator iter, int start, int limit)指示Font是否可以显示由iter开始并以start结尾的limit指定的文本。static FontcreateFont(int fontFormat, File fontFile)使用指定的字体类型和指定的字体文件返回一个新的Font。static FontcreateFont(int fontFormat, InputStream fontStream)使用指定的字体类型和输入数据返回一个新的Font。static Font[]createFonts(File fontFile)返回从指定文件解码的新数组Font。static Font[]createFonts(InputStream fontStream)返回从指定的流解码的新数组Font。GlyphVectorcreateGlyphVector(FontRenderContext frc, char[] chars)创建GlyphVector通过映射字符字形的一对一的基础上在此的Unicode cmapFont。GlyphVectorcreateGlyphVector(FontRenderContext frc, int[] glyphCodes)通过在Font中基于Unicode cmap将字符映射到字形,创建一个Font。GlyphVectorcreateGlyphVector(FontRenderContext frc, String str)通过在Font中的Unicode cmap将字符映射到字形,创建一个GlyphVectorFont。GlyphVectorcreateGlyphVector(FontRenderContext frc, CharacterIterator ci)通过在Font中基于Unicode cmap将指定的字符映射到字形,创建一个Font。static Fontdecode(String str)返回Font,该str参数描述。FontderiveFont(float size)通过复制当前的Font对象并应用新的大小来创建一个新的Font对象。FontderiveFont(int style)通过复制当前的Font对象并应用新的样式来创建一个新的Font对象。FontderiveFont(int style, float size)通过复制此Font对象并应用新的样式和大小来创建新的Font对象。FontderiveFont(int style, AffineTransform trans)通过复制此Font对象并应用新的样式和转换来创建新的Font对象。FontderiveFont(AffineTransform trans)通过复制当前的Font对象并对其应用新的变换来创建新的Font对象。FontderiveFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)通过复制当前的Font对象并向其应用一组新的字体属性来创建新的Font对象。booleanequals(Object obj)将此Font对象与指定的Object。Map<TextAttribute,?>getAttributes()返回此Font可用的字体属性的映射。AttributedCharacterIterator.Attribute[]getAvailableAttributes()返回此Font支持的所有属性的Font。bytegetBaselineFor(char c)返回适合显示此字符的基线。StringgetFamily()返回该名称Font。StringgetFamily(Locale l)返回此Font本地化名称,用于指定的区域设置。static FontgetFont(String nm)从系统属性列表中返回一个Font对象。static FontgetFont(String nm, Font font)从系统属性列表获取指定的Font。static FontgetFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)返回一个适合属性的Font。StringgetFontName()返回此Font的字体名称。StringgetFontName(Locale l)返回Font的字体名称,该名称已针对指定的区域设置进行本地化。floatgetItalicAngle()返回这个Font的斜体角。LineMetricsgetLineMetrics(char[] chars, int beginIndex, int limit, FontRenderContext frc)返回使用指定参数创建的一个LineMetrics对象。LineMetricsgetLineMetrics(String str, int beginIndex, int limit, FontRenderContext frc)返回使用指定参数创建的一个LineMetrics对象。LineMetricsgetLineMetrics(String str, FontRenderContext frc)返回使用指定的String和FontRenderContext创建的一个LineMetrics对象。LineMetricsgetLineMetrics(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)返回使用指定参数创建的一个LineMetrics对象。Rectangle2DgetMaxCharBounds(FontRenderContext frc)返回具有指定的FontRenderContext定义的最大边界的字符的边界。intgetMissingGlyphCode()返回当这个Font没有指定unicode代码点的字形时使用的Font。StringgetName()返回此Font的逻辑名称。intgetNumGlyphs()返回此Font的字形数。StringgetPSName()返回此Font的后记名称。intgetSize()返回此Font的点大小,舍入为整数。floatgetSize2D()返回此点大小Font在float值。Rectangle2DgetStringBounds(char[] chars, int beginIndex, int limit, FontRenderContext frc)返回指定的FontRenderContext指定的字符数组的逻辑边界。Rectangle2DgetStringBounds(String str, int beginIndex, int limit, FontRenderContext frc)返回在指定的String中指定的FontRenderContext的逻辑边界。Rectangle2DgetStringBounds(String str, FontRenderContext frc)返回指定的String中指定的FontRenderContext的逻辑边界。Rectangle2DgetStringBounds(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)返回指定索引的字符的逻辑边界CharacterIterator指定FontRenderContext。intgetStyle()返回此Font的样式。AffineTransformgetTransform()返回与此Font相关联的转换的副本。inthashCode()返回此Font的哈希Font。booleanhasLayoutAttributes()如果此字体包含需要额外布局处理的属性,则返回true。booleanhasUniformLineMetrics()检查此Font是否具有统一的线路度量。booleanisBold()指示此Font对象的样式是否为BOLD。booleanisItalic()指示此Font对象的样式是否为ITALIC。booleanisPlain()指示此Font对象的样式是否为PLAIN。booleanisTransformed()指示此Font对象是否具有影响其大小的变换以及Size属性。GlyphVectorlayoutGlyphVector(FontRenderContext frc, char[] text, int start, int limit, int flags)返回一个新的GlyphVector对象,如果可能,执行文本的全面布局。static booleantextRequiresLayout(char[] chars, int start, int end)如果指定文本的任何部分来自复杂脚本,则实现将需要调用布局处理以便在使用drawString(String,int,int)和其他文本呈现方法时正确呈现,则返回true。StringtoString()将此Font对象转换为String表示。
-
-
-
字段详细信息
-
DIALOG
public static final String DIALOG
逻辑字体“对话框”的规范系列名称的字符串常量。 它在字体构造中可用于提供编译时验证的名称。- 从以下版本开始:
- 1.6
- 另请参见:
- Constant Field Values
-
DIALOG_INPUT
public static final String DIALOG_INPUT
逻辑字体“DialogInput”的规范系列名称的字符串常量。 它在字体构造中可用于提供编译时验证的名称。- 从以下版本开始:
- 1.6
- 另请参见:
- Constant Field Values
-
SANS_SERIF
public static final String SANS_SERIF
逻辑字体“SansSerif”的规范系列名称的字符串常量。 它在字体构造中可用于提供编译时验证的名称。- 从以下版本开始:
- 1.6
- 另请参见:
- Constant Field Values
-
SERIF
public static final String SERIF
逻辑字体“Serif”的规范系列名称的字符串常量。 它在字体构造中可用于提供编译时验证的名称。- 从以下版本开始:
- 1.6
- 另请参见:
- Constant Field Values
-
MONOSPACED
public static final String MONOSPACED
逻辑字体“Monospaced”的规范系列名称的字符串常量。 它在字体构造中可用于提供编译时验证的名称。- 从以下版本开始:
- 1.6
- 另请参见:
- Constant Field Values
-
PLAIN
public static final int PLAIN
平原风格常数。- 另请参见:
- Constant Field Values
-
BOLD
public static final int BOLD
大胆的风格常数。 这可以与混合样式的其他样式常量(PLAIN除外)组合。- 另请参见:
- Constant Field Values
-
ITALIC
public static final int ITALIC
斜体风格常数。 这可以与混合样式的其他样式常量(PLAIN除外)组合。- 另请参见:
- Constant Field Values
-
ROMAN_BASELINE
public static final int ROMAN_BASELINE
大多数罗马脚本在布局文本时使用的基线。- 另请参见:
- Constant Field Values
-
CENTER_BASELINE
public static final int CENTER_BASELINE
中文,日文,韩文等表意文字的基线。- 另请参见:
- Constant Field Values
-
HANGING_BASELINE
public static final int HANGING_BASELINE
Devanagari中使用的基线和类似的脚本。- 另请参见:
- Constant Field Values
-
TRUETYPE_FONT
public static final int TRUETYPE_FONT
识别TRUETYPE类型的字体资源。 用于为createFont(int, java.io.InputStream)方法指定TrueType字体资源。 TrueType格式被扩展为OpenType格式,它增加了对Postscript轮廓的字体支持,因此这个标签引用了这些字体,以及使用TrueType轮廓的字体。- 从以下版本开始:
- 1.3
- 另请参见:
- Constant Field Values
-
TYPE1_FONT
public static final int TYPE1_FONT
识别类型TYPE1的字体资源。 用于为createFont(int, java.io.InputStream)方法指定Type1字体资源。- 从以下版本开始:
- 1.5
- 另请参见:
- Constant Field Values
-
style
protected int style
这种Font的风格,传递给构造函数。 这种风格可以是PLAIN,BOLD,ITALIC或BOLD + ITALIC。- 从以下版本开始:
- 1.0
- 另请参见:
-
getStyle()
-
size
protected int size
该点的大小为Font,舍入为整数。- 从以下版本开始:
- 1.0
- 另请参见:
-
getSize()
-
pointSize
protected float pointSize
这个Font的点大小在float。- 另请参见:
-
getSize(),getSize2D()
-
LAYOUT_LEFT_TO_RIGHT
public static final int LAYOUT_LEFT_TO_RIGHT
一个用于布局GlyphVector的标志,指示由Bidi分析确定的文本是从左到右。- 另请参见:
- Constant Field Values
-
LAYOUT_RIGHT_TO_LEFT
public static final int LAYOUT_RIGHT_TO_LEFT
一个标记为layoutGlyphVector的标志,指示由Bidi分析确定的文本是从右到左。- 另请参见:
- Constant Field Values
-
LAYOUT_NO_START_CONTEXT
public static final int LAYOUT_NO_START_CONTEXT
layoutGlyphVector的一个标志,指示在指定的开始之前的char数组中的文本不应被检查。- 另请参见:
- Constant Field Values
-
LAYOUT_NO_LIMIT_CONTEXT
public static final int LAYOUT_NO_LIMIT_CONTEXT
一个用于layoutGlyphVector的标志,指示在指定的限制之后的char数组中的文本不应被检查。- 另请参见:
- Constant Field Values
-
-
构造方法详细信息
-
Font
public Font(String name, int style, int size)
从指定的名称,样式和点大小创建新的Font。字体名称可以是字体名称或字体族名称。 它与风格一起使用以找到适当的字体。 当指定字体系列名称时,样式参数用于选择家庭中最合适的脸部。 指定字体名称时,将合并脸部样式和样式参数,以找到同一系列中匹配最佳的字体。 例如,如果使用样式
Font.ITALIC指定面部名称“Arial Bold”,则字体系统会在“Arial”系列中查找粗体和斜体的面部,并可将字体实例与物理字体“Arial Bold Italic”相关联。 。 样式参数与指定的脸部样式合并,不添加或减去。 这意味着,指定粗体和粗体样式不会使字体双倍膨胀,并且指定粗体和纯色样式不会减轻字体。如果没有找到所请求的样式的脸,字体系统可以应用算法样式来实现所需的样式。 例如,如果请求
ITALIC,但是没有斜体可用,来自平面的字形可能会被算术倾斜(倾斜)。使用美国地区的案例折叠规则,字体名称查找不区分大小写。
如果
name参数表示逻辑字体以外的东西,即被解释为物理字体或家庭,并且这不能被实现映射到物理字体或兼容替代品,则字体系统将映射到Font实例“对话”,例如,getFamily报道的家庭将是“对话框”。- 参数
-
name- 字体名称。 这可以是字体名称或字体系列名称,并且可以表示在这个GraphicsEnvironment找到的逻辑字体或物理字体。 逻辑字体的系列名称为:Dialog,DialogInput,Monospaced,Serif或SansSerif。 所有这些名称都存在预定义的字符串常量,例如DIALOG。 如果name为null,则由getName()返回的新的Font的逻辑字体名称设置为“Default”。 -
style-为对风格恒定Font风格参数是一个整数位掩码可以是PLAIN,或按位联盟BOLD和/或ITALIC(例如ITALIC或BOLD|ITALIC)。 如果style参数不符合预期的整数位掩码之一,则样式将设置为PLAIN。 -
size- 点大小为Font - 从以下版本开始:
- 1.0
- 另请参见:
-
GraphicsEnvironment.getAllFonts(),GraphicsEnvironment.getAvailableFontFamilyNames()
-
Font
public Font(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
创建具有指定属性的新的Font。 仅识别TextAttribute中定义的键。 此外,此构造函数不会识别FONT属性(请参阅getAvailableAttributes())。 只有具有有效类型值的属性才会影响新的Font。如果
attributes为null,Font使用默认值初始化新的Font。- 参数
-
attributes- 要分配给新的Font或null - 另请参见:
-
TextAttribute
-
Font
protected Font(Font font)
创建一个新Font从指定font。 这个构造函数是由子类使用的。- 参数
-
font- 从中创建此Font。 - 异常
-
NullPointerException- 如果font为空 - 从以下版本开始:
- 1.6
-
-
方法详细信息
-
textRequiresLayout
public static boolean textRequiresLayout(char[] chars, int start, int end)如果指定文本的任何部分来自复杂脚本,则实现将需要调用布局处理,以便在使用drawString(String,int,int)和其他文本呈现方法时正确呈现,则返回true。 文本的测量可能类似地需要相同的额外处理。 提供start和end索引,使得应用程序可以仅请求考虑文本的一部分。 检查的最后一个char索引为"end-1",即检查整个数组的请求将是应用程序可能会发现此信息对性能敏感代码有帮助。Font.textRequiresLayout(chars, 0, chars.length);请注意,即使此方法返回
false,当与其中hasLayoutAttributes()返回true任何Font一起使用时,布局处理仍可能被调用,因此需要查询特定字体的方法,以获得这样的字体的答案属性。- 参数
-
chars- 文字。 -
start- 要检查的第一个字符的索引。 -
end- 结束索引,独占。 - 结果
-
true如果指定的文本需要特殊布局。 - 异常
-
NullPointerException- 如果chars为空。 -
ArrayIndexOutOfBoundsException- 如果start为负数或end大于chars数组的长度。 - 从以下版本开始:
- 9
-
getFont
public static Font getFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
返回一个适合属性的Font。 如果attributes包含一个FONT属性,其中有一个有效的Font作为其值,它将与任何剩余的属性合并。 有关详细信息,请参阅TextAttribute.FONT。- 参数
-
attributes- 要分配给新的属性Font - 结果
-
用指定的属性创建一个新的
Font - 异常
-
NullPointerException- 如果attributes为空。 - 从以下版本开始:
- 1.2
- 另请参见:
-
TextAttribute
-
createFonts
public static Font[] createFonts(InputStream fontStream) throws FontFormatException, IOException
返回从指定的流解码的新数组Font。 返回的Font[]将至少有一个元素。createFont(int, InputStream)方法中此变体的明确目的是支持表示TrueType / OpenType字体集合的字体源,并能够返回该集合中的所有单个字体。 因此,如果数据源不包含至少一个TrueType / OpenType字体,则此方法将抛出FontFormatException。 如果集合中的任何字体不包含所需的字体表,同样的异常也将被抛出。条件“至少一个”允许流表示单个OpenType / TrueType字体。 也就是说,它不一定是一个集合。 每个
Font返回的数组的元素与1和风格的点大小创建PLAIN。 然后可以使用此基本字体与deriveFont中的deriveFont方法一起导出具有不同大小,样式,变换和字体功能的新的Font对象。此方法不关闭
InputStream。为了使每个
Font提供给字体构造函数必须在注册GraphicsEnvironment致电registerFont(Font)。- 参数
-
fontStream- 表示字体或字体集合的输入数据的InputStream对象。 - 结果
-
一个新的
Font[]。 - 异常
-
FontFormatException- 如果fontStream数据不包含集合的任何元素所需的字体表,或者根本不包含任何字体。 -
IOException- 如果fontStream无法完全阅读。 - 从以下版本开始:
- 9
- 另请参见:
-
GraphicsEnvironment.registerFont(Font)
-
createFonts
public static Font[] createFonts(File fontFile) throws FontFormatException, IOException
返回从指定文件解码的新数组Font。 返回的Font[]将至少有一个元素。createFont(int, File)方法中此变体的明确目的是支持表示TrueType / OpenType字体集合的字体源,并能够返回该集合中的所有单个字体。 因此,如果数据源不包含至少一个TrueType / OpenType字体,则此方法将抛出FontFormatException。 如果集合中的任何字体不包含所需的字体表,同样的异常也将被抛出。条件“至少一个”允许流表示单个OpenType / TrueType字体。 也就是说,它不一定是一个集合。 返回数组的每个
Font元素的创建点的大小为1,样式为PLAIN。 然后可以使用此基本字体与deriveFont中的deriveFont方法一起导出具有不同大小,样式,变换和字体功能的新的Font对象。为了使每个
Font提供给字体构造函数必须在注册GraphicsEnvironment致电registerFont(Font)。- 参数
-
fontFile- 一个File对象,其中包含字体或字体集合的输入数据。 - 结果
-
一个新的
Font[]。 - 异常
-
FontFormatException- 如果File不包含集合的任何元素所需的字体表,或者根本不包含任何字体。 -
IOException- 如果fontFile无法读取。 - 从以下版本开始:
- 9
- 另请参见:
-
GraphicsEnvironment.registerFont(Font)
-
createFont
public static Font createFont(int fontFormat, InputStream fontStream) throws FontFormatException, IOException
使用指定的字体类型和输入数据返回新的Font。 新的Font创建的点大小为1,样式为PLAIN。 然后可以使用此基本字体与deriveFont中的deriveFont方法一起导出具有不同大小,样式,变换和字体功能的新的Font对象。 此方法不关闭InputStream。要使
Font可用于Font构造函数,返回的Font必须通过调用registerFont(Font)在GraphicsEnvironment进行注册。- 参数
-
fontFormat-该类型Font,这是TRUETYPE_FONT如果指定一个TrueType资源。 或者如果指定了类型1资源,则为TYPE1_FONT。 -
fontStream- 表示字体输入数据的InputStream对象。 - 结果
-
用指定的字体类型创建一个新的
Font。 - 异常
-
IllegalArgumentException- 如果fontFormat不是TRUETYPE_FONT或TYPE1_FONT。 -
FontFormatException- 如果fontStream数据不包含指定格式所需的字体表。 -
IOException- 如果fontStream无法完全阅读。 - 从以下版本开始:
- 1.3
- 另请参见:
-
GraphicsEnvironment.registerFont(Font)
-
createFont
public static Font createFont(int fontFormat, File fontFile) throws FontFormatException, IOException
使用指定的字体类型和指定的字体文件返回一个新的Font。 新的Font创建的点大小为1,样式为PLAIN。 此基础字体可以与deriveFont中的deriveFont方法一起使用,以导出具有不同大小,样式,变换和字体功能的新的Font对象。- 参数
-
fontFormat-该类型Font,这是TRUETYPE_FONT如果指定或者一个TrueType资源TYPE1_FONT,如果指定了一个类型1资源。 只要引用返回的字体或其派生字体,实现可能会继续访问fontFile以检索字体数据。 因此,如果文件被更改或变得不可访问,结果是未定义的。为了使
Font提供给字体构造函数返回Font必须在注册GraphicsEnvironment致电registerFont(Font)。 -
fontFile- 表示字体输入数据的File对象。 - 结果
-
一个新的
Font创建与指定的字体类型。 - 异常
-
IllegalArgumentException- 如果fontFormat不是TRUETYPE_FONT或TYPE1_FONT。 -
NullPointerException- 如果fontFile为null。 -
IOException- 如果fontFile无法读取。 -
FontFormatException- 如果fontFile不包含指定格式所需的字体表。 -
SecurityException- 如果执行代码没有从文件读取的权限。 - 从以下版本开始:
- 1.5
- 另请参见:
-
GraphicsEnvironment.registerFont(Font)
-
getTransform
public AffineTransform getTransform()
返回与此Font相关联的转换的副本。 此变换不一定是用于构建字体的变换。 如果字体具有算法上标或宽度调整,则将其并入返回的AffineTransform。通常,字体不会被转换。 客户一般应该首先调用
isTransformed(),如果isTransformed返回true,则只调用此方法。- 结果
-
一个
AffineTransform对象表示此的变换属性Font对象。
-
getFamily
public String getFamily()
返回此Font的系列名称。字体的姓氏是字体特定的。 Helvetica Italic和Helvetica Bold等两种字体的姓氏Helvetica ,而他们的字体名字分别是Helvetica Bold和Helvetica Italic 。 可以使用
GraphicsEnvironment.getAvailableFontFamilyNames()方法获得可用姓氏列表。使用
getName获取字体的逻辑名称。 使用getFontName获取字体的字体名称。- 结果
-
一个
String是这个Font的家族名字。 - 从以下版本开始:
- 1.1
- 另请参见:
-
getName(),getFontName()
-
getFamily
public String getFamily(Locale l)
返回此Font的家族名称,针对指定的区域设置进行本地化。字体的姓氏是字体特定的。 Helvetica Italic和Helvetica Bold等两种字体的姓氏Helvetica ,而他们的字体名字分别是Helvetica Bold和Helvetica Italic 。 可以通过使用
GraphicsEnvironment.getAvailableFontFamilyNames()方法获得可用姓氏列表。使用
getFontName获取字体的字体名称。- 参数
-
l- 要获取姓氏的地区 - 结果
-
一个
String表示字体的家族名称,本地化为指定的区域设置。 - 从以下版本开始:
- 1.2
- 另请参见:
-
getFontName(),Locale
-
getPSName
public String getPSName()
返回此Font的后记名称。 使用getFamily获取字体的姓氏。 使用getFontName获取字体的字体名称。- 结果
-
一个
String代表这个Font的后记名称。 - 从以下版本开始:
- 1.2
-
getName
public String getName()
返回此Font的逻辑名称。 使用getFamily获取字体的姓氏。 使用getFontName获取字体的字体名称。- 结果
-
一个
String代表这个Font的逻辑名称。 - 从以下版本开始:
- 1.0
- 另请参见:
-
getFamily(),getFontName()
-
getFontName
public String getFontName()
返回此Font的字体名称。 例如,Helvetica Bold可以作为字体脸名返回。 使用getFamily获取字体的姓氏。 使用getName获取字体的逻辑名称。- 结果
-
一个
String代表这个Font的字体脸名。 - 从以下版本开始:
- 1.2
- 另请参见:
-
getFamily(),getName()
-
getFontName
public String getFontName(Locale l)
返回Font的字体面部名称,该名称已针对指定的区域设置进行了本地化。 例如,Helvetica Fett可以作为字体名称返回。 使用getFamily获取字体的姓氏。- 参数
-
l- 要获取字体面部名称的区域设置 - 结果
-
一个
String表示为指定的区域设置本地化的字体面部名称。 - 另请参见:
-
getFamily(),Locale
-
getStyle
public int getStyle()
返回此Font的样式。 风格可以是PLAIN,BOLD,ITALIC或BOLD + ITALIC。- 结果
-
这样的风格
Font - 从以下版本开始:
- 1.0
- 另请参见:
-
isPlain(),isBold(),isItalic()
-
getSize
public int getSize()
返回此Font的点大小,舍入为整数。 大多数用户都熟悉使用点大小来指定字体中字形的大小的想法。 该点大小定义了在单个间隔文本文档中的一行与下一行的基线之间的基线之间的度量。 点大小基于大约1/72英寸的印刷点 。Java(tm)2D API采用惯例,即一点相当于用户坐标中的一个单位。 当使用归一化变换将用户空间坐标转换为设备空间坐标时,72个用户空间单元在设备空间中等于1英寸。 在这种情况下,一点是1/72英寸。
- 结果
-
这个
Font的点尺寸在1/72英寸单位。 - 从以下版本开始:
- 1.0
- 另请参见:
-
getSize2D(),GraphicsConfiguration.getDefaultTransform(),GraphicsConfiguration.getNormalizingTransform()
-
getSize2D
public float getSize2D()
返回Font中float的点大小。- 结果
-
该点的大小为
Font作为float值。 - 从以下版本开始:
- 1.2
- 另请参见:
-
getSize()
-
isPlain
public boolean isPlain()
指示此Font对象的样式是否为PLAIN。- 结果
-
true如果这个Font有一个PLAIN样式; 否则为false。 - 从以下版本开始:
- 1.0
- 另请参见:
-
getStyle()
-
isBold
public boolean isBold()
指示此Font对象的样式是否为BOLD。- 结果
-
true如果这个Font对象的样式是BOLD;false否则。 - 从以下版本开始:
- 1.0
- 另请参见:
-
getStyle()
-
isItalic
public boolean isItalic()
指示此是否Font对象的样式为ITALIC。- 结果
-
true如果这个Font对象的样式是ITALIC; 否则为false。 - 从以下版本开始:
- 1.0
- 另请参见:
-
getStyle()
-
isTransformed
public boolean isTransformed()
指示此Font对象是否具有影响其大小的变换以及Size属性。- 结果
-
true如果此Font对象具有非身份的AffineTransform属性。 否则为false。 - 从以下版本开始:
- 1.4
- 另请参见:
-
getTransform()
-
hasLayoutAttributes
public boolean hasLayoutAttributes()
如果此字体包含需要额外布局处理的属性,则返回true。- 结果
- 如果字体具有布局属性,则为true
- 从以下版本开始:
- 1.6
-
getFont
public static Font getFont(String nm)
从系统属性列表中返回一个Font对象。nm被视为要获取的系统属性的名称。 所述String该属性的值然后解释为Font根据所述规范对象Font.decode(String)如果没有找到指定的属性,或执行代码没有权限读取属性,空值代替返回。- 参数
-
nm- 属性名称 - 结果
-
一个属性名称描述的
Font对象,如果不存在此属性,则为null。 - 异常
-
NullPointerException- 如果nm为空。 - 从以下版本开始:
- 1.2
- 另请参见:
-
decode(String)
-
decode
public static Font decode(String str)
返回Font,该str参数描述。 要确保此方法返回所需的字体,请以这些方式之一格式化str参数- 字体名-风格的pointsize
- 字体名-的pointsize
- 字体名风格
- 字体名
- fontname风格指向
- fontname指向
- fontname样式
- 字体名
"PLAIN","BOLD","BOLDITALIC",或"ITALIC",和是的pointsize点大小的正十进制整数表示。 例如,如果您想要一个字体为Arial,粗体,点大小为18,则可以使用以下方法调用此方法:“Arial-BOLD-18”。 这相当于调用Font构造函数:new Font("Arial", Font.BOLD, 18);并且这些值被解释为由该构造函数指定。始终将有效的尾部十进制字段解释为pointsize。 因此,只能在fontname only表单中使用包含尾随十进制值的字体。
如果样式名称字段不是有效的样式字符串之一,则将其解释为字体名称的一部分,并使用默认样式。
可以使用“或” - “中的一个来分隔输入中的字段。 标识的分隔符是最接近字符串末尾的分隔符,该分隔符将有效的pointsize或有效的样式名称与该字符串的其余部分分开。 空(空)指针和样式字段被视为具有该字段的默认值的有效字段。
某些字体名称可能包含分隔符“'或” - “。 如果
str不与3组的部件,例如形成为使得style或pointsize字段不存在于str,和fontname还包含一个字符确定为分隔符然后在那里它们表现为旨在是一部分这些字符fontname也可以是解释为分隔符,因此字体名称可能无法正确识别。默认大小为12,默认样式为PLAIN。 如果
str未指定有效大小,则返回的Font的大小为12.如果str未指定有效样式,则返回的Font具有PLAIN样式。 如果在str参数中未指定有效的字体名称,则此方法将返回一个名称为“Dialog”的字体。 要确定系统中可用的字体族名称,请使用GraphicsEnvironment.getAvailableFontFamilyNames()方法。 如果str是null,则返回一个新的Font,其名称为“Dialog”,大小为12,PLAIN样式。- 参数
-
str- 字体的名称,或null - 结果
-
该
Font对象str描述,或一个新的默认Font如果str为null。 - 从以下版本开始:
- 1.1
- 另请参见:
-
getFamily()
-
getFont
public static Font getFont(String nm, Font font)
从系统属性列表中获取指定的Font。 正如在getProperty的方法System,第一个参数被视为要获得的系统属性的名称。 此属性的String值被解释为Font对象。属性值应为
Font.decode(String)接受的Font.decode(String)如果没有找到指定的属性,或执行代码没有读取属性的权限,则返回font参数。- 参数
-
nm- 不区分大小写的属性名称 -
font- 如果属性nmFont,则返回默认值Font - 结果
-
该
Font价值为Font。 - 异常
-
NullPointerException- 如果nm为空。 - 另请参见:
-
decode(String)
-
hashCode
public int hashCode()
返回此Font的哈希Font。- 重写:
-
hashCode在类Object - 结果
-
这个
Font的哈希码值。 - 从以下版本开始:
- 1.0
- 另请参见:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
equals
public boolean equals(Object obj)
将此Font对象与指定的Object。- 重写:
-
equals在Object - 参数
-
obj-Object进行比较 - 结果
-
true如果对象是相同的,或者参数是一个Font对象描述与该对象相同的字体; 否则为false。 - 从以下版本开始:
- 1.0
- 另请参见:
-
Object.hashCode(),HashMap
-
toString
public String toString()
将此Font对象转换为String表示。
-
getNumGlyphs
public int getNumGlyphs()
返回此Font的字形数。 字形码为Font范围从0到getNumGlyphs()- 1。- 结果
-
这个字形数在这
Font。 - 从以下版本开始:
- 1.2
-
getMissingGlyphCode
public int getMissingGlyphCode()
返回当这个Font没有指定unicode代码点的字形时使用的Font。- 结果
-
该字形码为
Font。 - 从以下版本开始:
- 1.2
-
getBaselineFor
public byte getBaselineFor(char c)
返回适合显示此字符的基线。大字体可以支持不同的书写系统,每个系统可以使用不同的基准。 字符参数确定要使用的写入系统。 客户不应假定所有角色使用相同的基线。
- 参数
-
c- 用于识别书写系统的字符 - 结果
- 基线适合指定字符。
- 从以下版本开始:
- 1.2
- 另请参见:
-
LineMetrics.getBaselineOffsets(),ROMAN_BASELINE,CENTER_BASELINE,HANGING_BASELINE
-
getAttributes
public Map<TextAttribute,?> getAttributes()
返回此Font可用的字体属性的映射。 属性包括诸如连字和字形替换等。- 结果
-
这个
Font的属性图。
-
getAvailableAttributes
public AttributedCharacterIterator.Attribute[] getAvailableAttributes()
返回此Font支持的所有属性的Font。 这些属性可用于派生其他字体。- 结果
-
一个包含
Font支持的所有属性的键的数组。 - 从以下版本开始:
- 1.2
-
deriveFont
public Font deriveFont(int style, float size)
通过复制此Font对象并应用新的样式和大小来创建新的Font对象。- 参数
-
style- 新的风格Font -
size- 新的尺寸Font - 结果
-
一个新的
Font对象。 - 从以下版本开始:
- 1.2
-
deriveFont
public Font deriveFont(int style, AffineTransform trans)
通过复制此Font对象并应用新的样式和变换来创建新的Font对象。- 参数
-
style- 新款Font -
trans- 与新的AffineTransform相关联的Font - 结果
-
一个新的
Font对象。 - 异常
-
IllegalArgumentException- 如果trans是null - 从以下版本开始:
- 1.2
-
deriveFont
public Font deriveFont(float size)
通过复制当前的Font对象并向其应用新的大小来创建一个新的Font对象。- 参数
-
size- 新的Font的大小。 - 结果
-
一个新的
Font对象。 - 从以下版本开始:
- 1.2
-
deriveFont
public Font deriveFont(AffineTransform trans)
通过复制当前的Font对象并应用一个新的变换来创建一个新的Font对象。- 参数
-
trans- 与新的AffineTransform相关联的Font - 结果
-
一个新的
Font对象。 - 异常
-
IllegalArgumentException- 如果trans是null - 从以下版本开始:
- 1.2
-
deriveFont
public Font deriveFont(int style)
通过复制当前的Font对象并应用新的样式来创建一个新的Font对象。- 参数
-
style- 新的样式Font - 结果
-
一个新的
Font对象。 - 从以下版本开始:
- 1.2
-
deriveFont
public Font deriveFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
通过复制当前的Font对象并向其应用一组新的字体属性来创建新的Font对象。- 参数
-
attributes- 为新的Font启用的属性Font - 结果
-
一个新的
Font对象。 - 从以下版本开始:
- 1.2
-
canDisplay
public boolean canDisplay(char c)
检查这个Font是否具有指定字符的字形。注意:此方法无法处理supplementary characters 。 要支持所有Unicode字符(包括补充字符),请使用
canDisplay(int)或canDisplayUpTo方法。- 参数
-
c- 需要字形的字符 - 结果
-
true如果这个Font有这个字符的字形; 否则为false。 - 从以下版本开始:
- 1.2
-
canDisplay
public boolean canDisplay(int codePoint)
检查Font是否具有指定字符的字形。- 参数
-
codePoint- 需要字形的字符(Unicode代码点)。 - 结果
-
true如果这个Font有字符的字形; 否则为false。 - 异常
-
IllegalArgumentException- 如果代码点不是有效的Unicode代码点。 - 从以下版本开始:
- 1.5
- 另请参见:
-
Character.isValidCodePoint(int)
-
canDisplayUpTo
public int canDisplayUpTo(String str)
指示Font是否可以显示指定的String。 对于具有Unicode编码的字符串,重要的是要知道特定字体是否可以显示字符串。 该方法返回一个偏移量,Stringstr这是Font无法显示的第一个字符,而不使用缺少的字形代码。 如果Font可以显示所有字符,则返回-1。- 参数
-
str- 一个String对象 - 结果
-
的偏移量
str指向的第一个字符str这Font不能显示; 或-1如果这Font可以显示所有字符在str。 - 从以下版本开始:
- 1.2
-
canDisplayUpTo
public int canDisplayUpTo(char[] text, int start, int limit)指示此是否Font可以显示在指定的字符text在起始start和在结束limit。 这个方法是一个方便的超载。- 参数
-
text- 指定的char数组的数组 -
start- 指定的起始偏移量(在chars)到指定的char值的数组 -
limit- 指定的结束偏移量(在chars中)到指定的数组中的char值 - 结果
-
的偏移量
text指向的第一个字符text这Font不能显示; 或-1如果这Font可以显示所有字符在text。 - 从以下版本开始:
- 1.2
-
canDisplayUpTo
public int canDisplayUpTo(CharacterIterator iter, int start, int limit)
指示Font是否可以显示由iter开始并以start结尾的limit指定的文本。- 参数
-
iter- 一个CharacterIterator对象 -
start- 指定的起始偏移量指定为CharacterIterator。 -
limit- 指定的结束偏移量到指定的CharacterIterator。 - 结果
-
的偏移量
iter指向的第一个字符iter这Font不能显示; 或者-1如果Font可以显示所有字符iter。 - 从以下版本开始:
- 1.2
-
getItalicAngle
public float getItalicAngle()
返回这个Font的斜体角。 斜体角度是最符合这个Font姿势的插入符号的斜率。- 结果
-
这个
Font风格的角度是Font。 - 另请参见:
-
TextAttribute.POSTURE
-
hasUniformLineMetrics
public boolean hasUniformLineMetrics()
检查此Font是否具有统一的线路度量。 逻辑Font可能是复合字体,这意味着它由不同的物理字体组成以覆盖不同的代码范围。 这些字体中的每一种可能具有不同的LineMetrics。 如果逻辑Font是单一字体,则度量将是统一的。- 结果
-
true如果这Font有统一的线度量; 否则为false。
-
getLineMetrics
public LineMetrics getLineMetrics(String str, FontRenderContext frc)
返回使用指定的String和FontRenderContext创建的LineMetrics对象。- 参数
-
str- 指定的String -
frc- 指定的FontRenderContext - 结果
-
使用指定的
String和FontRenderContext创建的一个LineMetrics对象。
-
getLineMetrics
public LineMetrics getLineMetrics(String str, int beginIndex, int limit, FontRenderContext frc)
返回使用指定参数创建的一个LineMetrics对象。- 参数
-
str- 指定的String -
beginIndex- 初始偏移量为str -
limit- 最终偏移量为str -
frc- 指定的FontRenderContext - 结果
-
使用指定的参数创建的一个
LineMetrics对象。
-
getLineMetrics
public LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit, FontRenderContext frc)
返回使用指定参数创建的一个LineMetrics对象。- 参数
-
chars- 一个字符数组 -
beginIndex- 初始偏移量为chars -
limit- 结束偏移量为chars -
frc- 指定的FontRenderContext - 结果
-
使用指定的参数创建的一个
LineMetrics对象。
-
getLineMetrics
public LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
返回使用指定参数创建的一个LineMetrics对象。- 参数
-
ci- 指定的CharacterIterator -
beginIndex-初始偏移ci -
limit-的端部偏移量ci -
frc- 指定的FontRenderContext - 结果
-
使用指定的参数创建的一个
LineMetrics对象。
-
getStringBounds
public Rectangle2D getStringBounds(String str, FontRenderContext frc)
返回指定的String中指定的FontRenderContext的逻辑边界。 逻辑边界包含起点,上升,前进和高度,其中包括前导。 逻辑边界并不总是包含所有文本。 例如,在某些语言和某些字体中,重音标记可以位于上升或下降之上。 要得到可视的边界框,它包围了所有文本,使用getBounds的方法TextLayout。注意:返回的边界在基线相对坐标(见
class notes)。- 参数
-
str- 指定的String -
frc- 指定的FontRenderContext - 结果
-
一个
Rectangle2D是指定的String中指定的FontRenderContext。 - 从以下版本开始:
- 1.2
- 另请参见:
-
FontRenderContext,createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
-
getStringBounds
public Rectangle2D getStringBounds(String str, int beginIndex, int limit, FontRenderContext frc)
返回指定的String中指定的FontRenderContext的逻辑边界。 逻辑边界包含起点,上升,前进和高度,其中包括前导。 逻辑边界并不总是包含所有文本。 例如,在某些语言和某些字体中,重音标记可以位于上升或下降之上。 要得到可视的边界框,它包围了所有文本,使用getBounds的方法TextLayout。注意:返回的边界在基线相对坐标(见
class notes)。- 参数
-
str- 指定的String -
beginIndex- 初始偏移量为str -
limit- 最终的偏移量为str -
frc- 指定的FontRenderContext - 结果
-
一个
Rectangle2D这是指定的String,在指定的FontRenderContext。 - 异常
-
IndexOutOfBoundsException-如果beginIndex小于零,或limit比的长度大str,或beginIndex大于limit。 - 从以下版本开始:
- 1.2
- 另请参见:
-
FontRenderContext,createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
-
getStringBounds
public Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit, FontRenderContext frc)
返回指定的FontRenderContext中指定字符数组的逻辑边界。 逻辑边界包含起点,上升,前进和高度,其中包括前导。 逻辑边界并不总是包含所有文本。 例如,在某些语言和某些字体中,重音标记可以位于上升或下降之上。 要得到可视的边界框,它包围了所有文本,使用getBounds的方法TextLayout。注意:返回的边界在基线相对坐标(见
class notes)。- 参数
-
chars- 一个字符数组 -
beginIndex- 字符数组中的初始偏移量 -
limit- 字符数组中的结束偏移量 -
frc- 指定的FontRenderContext - 结果
-
一个
Rectangle2D是指定的FontRenderContext指定的字符数组的边界框。 - 异常
-
IndexOutOfBoundsException-如果beginIndex小于零,或limit比的长度大chars,或beginIndex大于limit。 - 从以下版本开始:
- 1.2
- 另请参见:
-
FontRenderContext,createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
-
getStringBounds
public Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
返回指定索引的字符的逻辑边界CharacterIterator指定FontRenderContext。 逻辑边界包含起点,上升,前进和高度,其中包括前导。 逻辑边界并不总是包含所有文本。 例如,在某些语言和某些字体中,重音标记可以位于上升或下降之上。 要得到可视的边界框,它包围了所有文本,使用getBounds的方法TextLayout。注意:返回的边界在基线相对坐标(见
class notes)。- 参数
-
ci- 指定的CharacterIterator -
beginIndex-初始偏移ci -
limit- 最终的偏移量在ci -
frc- 指定的FontRenderContext - 结果
-
一个
Rectangle2D即在指定的索引的字符的边界框CharacterIterator在指定FontRenderContext。 - 异常
-
IndexOutOfBoundsException- 如果beginIndex小于起始指数ci,或limit大于最终指数ci,或beginIndex大于limit - 从以下版本开始:
- 1.2
- 另请参见:
-
FontRenderContext,createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
-
getMaxCharBounds
public Rectangle2D getMaxCharBounds(FontRenderContext frc)
返回具有指定的FontRenderContext定义的最大边界的字符的边界。注意:返回的边界在基线相对坐标(见
class notes)。- 参数
-
frc- 指定的FontRenderContext - 结果
-
一个
Rectangle2D是具有最大边界的字符的边框。
-
createGlyphVector
public GlyphVector createGlyphVector(FontRenderContext frc, String str)
通过在Font中基于Unicode cmap将字符映射到字形,创建一个Font。 除了将字形映射到字符之外,此方法还没有其他处理。 这意味着这种方法对于需要重新排序,整形或连字替换的一些脚本(如阿拉伯语,希伯来语,泰语和印度语)是无用的。- 参数
-
frc- 指定的FontRenderContext -
str- 指定的String - 结果
-
一个新的
GlyphVector创建与指定的String和指定的FontRenderContext。
-
createGlyphVector
public GlyphVector createGlyphVector(FontRenderContext frc, char[] chars)
创建GlyphVector通过映射字符字形的一对一的基础上在此的Unicode cmapFont。 除了将字形映射到字符之外,此方法还没有其他处理。 这意味着这种方法对于需要重新排序,整形或连字替换的一些脚本(如阿拉伯语,希伯来语,泰语和印度语)是无用的。- 参数
-
frc- 指定的FontRenderContext -
chars- 指定的字符数组 - 结果
-
新
GlyphVector与指定的字符数组和指定创建FontRenderContext。
-
createGlyphVector
public GlyphVector createGlyphVector(FontRenderContext frc, CharacterIterator ci)
通过将Font中的Unicode cmap基于指定的字符映射到字形一对一来创建一个Font。 除了将字形映射到字符之外,此方法还没有其他处理。 这意味着这种方法对于需要重新排序,整形或连字替换的一些脚本(如阿拉伯语,希伯来语,泰语和印度语)是无用的。- 参数
-
frc- 指定的FontRenderContext -
ci- 指定的CharacterIterator - 结果
-
一个新的
GlyphVector创建与指定的CharacterIterator和指定的FontRenderContext。
-
createGlyphVector
public GlyphVector createGlyphVector(FontRenderContext frc, int[] glyphCodes)
创建GlyphVector通过映射字符字形的一对一的基础上在此的Unicode cmapFont。 除了将字形映射到字符之外,此方法还没有其他处理。 这意味着这种方法对于需要重新排序,整形或连字替换的一些脚本(如阿拉伯语,希伯来语,泰语和印度语)是无用的。- 参数
-
frc- 指定的FontRenderContext -
glyphCodes- 指定的整数数组 - 结果
-
新
GlyphVector与指定的整数数组和指定创建FontRenderContext。
-
layoutGlyphVector
public GlyphVector layoutGlyphVector(FontRenderContext frc, char[] text, int start, int limit, int flags)
返回一个新的GlyphVector对象,如果可能,执行文本的全面布局。 对于复杂文本(如阿拉伯语或印地语)需要完整布局。 支持不同的脚本取决于字体和实现。布局需要双向分析,由
Bidi执行,只能对具有统一方向的文本执行。 方向在flags参数中指示,使用LAYOUT_RIGHT_TO_LEFT表示从右到左(阿拉伯语和希伯来语)运行方向,或LAYOUT_LEFT_TO_RIGHT表示从左到右(英文)运行方向。此外,一些操作,如阿拉伯塑造,需要上下文,以便开始和限制的字符可以具有正确的形状。 有时缓冲区中提供范围之外的数据没有有效数据。 可以将值LAYOUT_NO_START_CONTEXT和LAYOUT_NO_LIMIT_CONTEXT添加到flags参数中,以指示不应在上下文中检查开始之前或之后的限制之后的文本。
flags参数的所有其他值都保留。
- 参数
-
frc- 指定的FontRenderContext -
text- 文本布局 -
start- 文字的开头用于GlyphVector -
limit- 用于GlyphVector的文本的限制 -
flags- 如上所述的控制标志 - 结果
-
新的
GlyphVector表示开始和限制之间的文本,选择和定位字形以最好地表示文本 - 异常
-
ArrayIndexOutOfBoundsException- 如果启动或限制超出范围 - 从以下版本开始:
- 1.4
- 另请参见:
-
Bidi,LAYOUT_LEFT_TO_RIGHT,LAYOUT_RIGHT_TO_LEFT,LAYOUT_NO_START_CONTEXT,LAYOUT_NO_LIMIT_CONTEXT
-
-