返回介绍

java.awt.font 类 NumericShaper

发布于 2019-10-04 09:50:20 字数 15859 浏览 881 评论 0 收藏 0

java.lang.Object
  └java.awt.font.NumericShaper
所有已实现的接口:
Serializable

public final class NumericShaper
extends Object
 
implements Serializable
 

NumericShaper 类用于将 Latin-1(欧洲语)数字转换成其他 Unicode 十进制数字。此类的用户主要是那些希望使用民族数字形状显示数据的人,但是发现使用 Latin-1(欧洲语)数字内部表示该数据更方便。此类不能解释过时的数字形状选择器字符 (U+206E)。

NumericShaper 的实例通常用作具有 TextAttribute 类的 NUMERIC_SHAPING 属性的文本属性。例如,以下代码片段可使 TextLayout 将欧洲数字转换成阿拉伯语上下文中的阿拉伯数字:

 Map map = new HashMap();
 map.put(TextAttribute.NUMERIC_SHAPING, 
     NumericShaper.getContextualShaper(NumericShaper.ARABIC));
 FontRenderContext frc = ...;
 TextLayout layout = new TextLayout(text, map, frc);
 layout.draw(g2d, x, y);

它还可能使用 NumericShaper 的实例显式执行数字成形,如以下代码片断所演示的:

   char[] text = ...;
   // shape all EUROPEAN digits (except zero) to ARABIC digits
   NumericShaper shaper = NumericShaper.getShaper(NumericShaper.ARABIC);
   shaper.shape(text, start, count);

   // shape European digits to ARABIC digits if preceeding text is Arabic, or
   // shape European digits to TAMIL digits if preceeding text is Tamil, or
   // leave European digits alone if there is no preceeding text, or 
   // preceeding text is neither Arabic nor Tamil
   NumericShaper shaper = 
      NumericShaper.getContextualShaper(NumericShaper.ARABIC | 
                                              NumericShaper.TAMIL,
                                              NumericShaper.EUROPEAN);
   shaper.shape(text. start, count);
从以下版本开始:
1.4
另请参见:
序列化表格

字段摘要
staticintALL_RANGES

识别所有的范围,用于完整的上下文成形。

staticintARABIC

识别 ARABIC 范围和十进制基数。

staticintBENGALI

识别 BENGALI 范围和十进制基数。

staticintDEVANAGARI

识别 DEVANAGARI 范围和十进制基数。

staticintEASTERN_ARABIC

识别 ARABIC 范围和 ARABIC_EXTENDED 十进制基数。

staticintETHIOPIC

识别 ETHIOPIC 范围和十进制基数。

staticintEUROPEAN

识别 Latin-1(欧洲语)和扩展范围,以及 Latin-1(欧洲语)十进制基数。

staticintGUJARATI

识别 GUJARATI 范围和十进制基数。

staticintGURMUKHI

识别 GURMUKHI 范围和十进制基数。

staticintKANNADA

识别 KANNADA 范围和十进制基数。

staticintKHMER

识别 KHMER 范围和十进制基数。

staticintLAO

识别 LAO 范围和十进制基数。

staticintMALAYALAM

识别 MALAYALAM 范围和十进制基数。

staticintMONGOLIAN

识别 MONGOLIAN 范围和十进制基数。

staticintMYANMAR

识别 MYANMAR 范围和十进制基数。

staticintORIYA

识别 ORIYA 范围和十进制基数。

staticintTAMIL

识别 TAMIL 范围和十进制基数。

staticintTELUGU

识别 TELUGU 范围和十进制基数。

staticintTHAI

识别 THAI 范围和十进制基数。

staticintTIBETAN

识别 TIBETAN 范围和十进制基数。

方法摘要
booleanequals(Objecto)

如果指定的对象是 NumericShaper 的一个实例,并且完全一致地成形到此实例,则返回 true。

staticNumericShapergetContextualShaper(intranges)

返回所提供的 unicode 范围的上下文成形器。

staticNumericShapergetContextualShaper(intranges, intdefaultContext)

返回所提供 unicode 范围的上下文成形器。

intgetRanges()

返回一个 int ,它使用或连接 (OR) 所有将成形的范围的值。

staticNumericShapergetShaper(intsingleRange)

返回所提供的 unicode 范围的成形器。

inthashCode()

返回此成形器的哈希码。

booleanisContextual()

返回一个 boolean 值,指示此成形器是否以上下文方式成形。

voidshape(char[]text, intstart, intcount)

转换文本中在 start 和 start + 计数之间出现的数字。

voidshape(char[]text, intstart, intcount, intcontext)

使用提供的上下文,转换文本中在 start 和 start + 计数之间出现的数字。

StringtoString()

返回描述此成形器的 String

从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait

字段详细信息

EUROPEAN

public static final int EUROPEAN
识别 Latin-1(欧洲语)和扩展范围,以及 Latin-1(欧洲语)十进制基数。
另请参见:
常量字段值

ARABIC

public static final int ARABIC
识别 ARABIC 范围和十进制基数。
另请参见:
常量字段值

EASTERN_ARABIC

public static final int EASTERN_ARABIC
识别 ARABIC 范围和 ARABIC_EXTENDED 十进制基数。
另请参见:
常量字段值

DEVANAGARI

public static final int DEVANAGARI
识别 DEVANAGARI 范围和十进制基数。
另请参见:
常量字段值

BENGALI

public static final int BENGALI
识别 BENGALI 范围和十进制基数。
另请参见:
常量字段值

GURMUKHI

public static final int GURMUKHI
识别 GURMUKHI 范围和十进制基数。
另请参见:
常量字段值

GUJARATI

public static final int GUJARATI
识别 GUJARATI 范围和十进制基数。
另请参见:
常量字段值

ORIYA

public static final int ORIYA
识别 ORIYA 范围和十进制基数。
另请参见:
常量字段值

TAMIL

public static final int TAMIL
识别 TAMIL 范围和十进制基数。泰米尔语没有十进制数字 0,所以使用 Latin-1(欧洲语)0。
另请参见:
常量字段值

TELUGU

public static final int TELUGU
识别 TELUGU 范围和十进制基数。
另请参见:
常量字段值

KANNADA

public static final int KANNADA
识别 KANNADA 范围和十进制基数。
另请参见:
常量字段值

MALAYALAM

public static final int MALAYALAM
识别 MALAYALAM 范围和十进制基数。
另请参见:
常量字段值

THAI

public static final int THAI
识别 THAI 范围和十进制基数。
另请参见:
常量字段值

LAO

public static final int LAO
识别 LAO 范围和十进制基数。
另请参见:
常量字段值

TIBETAN

public static final int TIBETAN
识别 TIBETAN 范围和十进制基数。
另请参见:
常量字段值

MYANMAR

public static final int MYANMAR
识别 MYANMAR 范围和十进制基数。
另请参见:
常量字段值

ETHIOPIC

public static final int ETHIOPIC
识别 ETHIOPIC 范围和十进制基数。
另请参见:
常量字段值

KHMER

public static final int KHMER
识别 KHMER 范围和十进制基数。
另请参见:
常量字段值

MONGOLIAN

public static final int MONGOLIAN
识别 MONGOLIAN 范围和十进制基数。
另请参见:
常量字段值

ALL_RANGES

public static final int ALL_RANGES
识别所有的范围,用于完整的上下文成形。
另请参见:
常量字段值

方法详细信息

getShaper

public static NumericShaper getShaper(intsingleRange)
返回所提供的 unicode 范围的成形器。将所有 Latin-1(欧洲语)数字转换成相应的十进制 unicode 数字。
参数:
singleRange - 指定的 Unicode 范围
返回:
非上下文的数字成形器
抛出:
IllegalArgumentException - 如果该范围不是单个范围

getContextualShaper

public static NumericShaper getContextualShaper(intranges)
返回所提供的 unicode 范围的上下文成形器。将 Latin-1(欧洲语)数字转换成与前述文本范围对应的十进制数字(如果该范围是所提供的范围之一)。通过或连接这些值(如 NumericShaper.ARABIC | NumericShaper.THAI )来表示多个范围。该成形器假定 EUROPEAN 为初始上下文,即如果在字符串中在任何强方向文本之前碰到 EUROPEAN 数字,则该上下文将被假定为 EUROPEAN,因此将不成形数字。
参数:
ranges - 指定的 Unicode 范围
返回:
指定范围的成形器

getContextualShaper

public static NumericShaper getContextualShaper(intranges,
                                                intdefaultContext)
返回所提供 unicode 范围的上下文成形器。将 Latin-1(欧洲语)数字转换成与前述文本范围对应的十进制数字(如果该范围是所提供的范围之一)。通过或连接这些值(例如 NumericShaper.ARABIC | NumericShaper.THAI )来表示多个范围。该成形器将 defaultContext 用作初始上下文。
参数:
ranges - 指定的 Unicode 范围
defaultContext - 初始上下文,如 NumericShaper.EUROPEAN
返回:
指定 Unicode 范围的成形器。

shape

public void shape(char[]text,
                  intstart,
                  intcount)
转换文本中在 start 和 start + 计数之间出现的数字。
参数:
text - 要转换的字符数组
start - 要开始转换的 text 的索引
count - 要转换的 text 中的字符数

shape

public void shape(char[]text,
                  intstart,
                  intcount,
                  intcontext)
使用提供的上下文,转换文本中在 start 和 start + 计数之间出现的数字。如果该成形器不是上下文成形器,则忽略上下文。
参数:
text - 字符数组
start - 要开始转换的 text 的索引
count - 要转换的 text 中的字符数
context - 向其转换字符(如 NumericShaper.EUROPEAN )的上下文

isContextual

public boolean isContextual()
返回一个 boolean 值,指示此成形器是否以上下文方式成形。
返回:
如果此成形器是上下文的,则返回 true ;否则返回 false

getRanges

public int getRanges()
返回一个 int ,它使用或连接 (OR) 所有将成形的范围的值。

例如,要检查成形器是否成形阿拉伯数字,应使用以下语句:

if ((shaper.getRanges() & shaper.ARABIC) != 0) { ...

返回:
要成形的所有范围的值。

hashCode

public int hashCode()
返回此成形器的哈希码。
覆盖:
Object 中的 hashCode
返回:
此成形器的哈希码。
另请参见:
Object.hashCode()

equals

public boolean equals(Objecto)
如果指定的对象是 NumericShaper 的一个实例,并且完全一致地成形到此实例,则返回 true。
覆盖:
Object 中的 equals
参数:
o - 与此 NumericShaper 进行比较的指定对象
返回:
如果 oNumericShaper 的一个实例,并且以相同的方式成形,则返回 true ;否则返回 false
另请参见:
Object.equals(java.lang.Object)

toString

public String toString()
返回描述此成形器的 String 。该方法仅用于调试目的。
覆盖:
Object 中的 toString
返回:
描述此成形器的 String

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文