JavaTM 2 Platform
Standard Ed. 6

java.awt.font
類別 NumericShaper

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 preceding text is Arabic, or
   // shape European digits to TAMIL digits if preceding text is Tamil, or
   // leave European digits alone if there is no preceding text, or 
   // preceding text is neither Arabic nor Tamil
   NumericShaper shaper = 
      NumericShaper.getContextualShaper(NumericShaper.ARABIC | 
                                              NumericShaper.TAMIL,
                                              NumericShaper.EUROPEAN);
   shaper.shape(text. start, count);
 

從以下版本開始:
1.4
另請參見:
序列化表格

欄位摘要
static int ALL_RANGES
          標識所有的範圍,用於完整的上下文成形。
static int ARABIC
          標識 ARABIC 範圍和十進制進制。
static int BENGALI
          標識 BENGALI 範圍和十進制進制。
static int DEVANAGARI
          標識 DEVANAGARI 範圍和十進制進制。
static int EASTERN_ARABIC
          標識 ARABIC 範圍和 ARABIC_EXTENDED 十進制進制。
static int ETHIOPIC
          標識 ETHIOPIC 範圍和十進制進制。
static int EUROPEAN
          標識 Latin-1(歐洲語)和擴展範圍,以及 Latin-1(歐洲語)十進制進制。
static int GUJARATI
          標識 GUJARATI 範圍和十進制進制。
static int GURMUKHI
          標識 GURMUKHI 範圍和十進制進制。
static int KANNADA
          標識 KANNADA 範圍和十進制進制。
static int KHMER
          標識 KHMER 範圍和十進制進制。
static int LAO
          標識 LAO 範圍和十進制進制。
static int MALAYALAM
          標識 MALAYALAM 範圍和十進制進制。
static int MONGOLIAN
          標識 MONGOLIAN 範圍和十進制進制。
static int MYANMAR
          標識 MYANMAR 範圍和十進制進制。
static int ORIYA
          標識 ORIYA 範圍和十進制進制。
static int TAMIL
          標識 TAMIL 範圍和十進制進制。
static int TELUGU
          標識 TELUGU 範圍和十進制進制。
static int THAI
          標識 THAI 範圍和十進制進制。
static int TIBETAN
          標識 TIBETAN 範圍和十進制進制。
 
方法摘要
 boolean equals(Object o)
          如果指定的物件是 NumericShaper 的一個實例,並且完全一致地成形到此實例,則返回 true。
static NumericShaper getContextualShaper(int ranges)
          返回提供的 unicode 範圍的上下文成形器。
static NumericShaper getContextualShaper(int ranges, int defaultContext)
          返回提供的 unicode 範圍的上下文成形器。
 int getRanges()
          返回一個 int,它使用或操作 (OR) 連接所有將成形的範圍的值。
static NumericShaper getShaper(int singleRange)
          返回所提供的 unicode 範圍的成形器。
 int hashCode()
          返回此成形器的雜湊碼。
 boolean isContextual()
          返回一個 boolean 值,指示此成形器是否以上下文方式成形。
 void shape(char[] text, int start, int count)
          轉換文本中在 start 和 start + count 之間出現的數字。
 void shape(char[] text, int start, int count, int context)
          使用提供的上下文,轉換文本中在 start 和 start + count 之間出現的數字。
 String toString()
          返回描述此成形器的 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(int singleRange)
返回所提供的 unicode 範圍的成形器。將所有 Latin-1(歐洲語)數字轉換成相應的十進制 unicode 數字。

參數:
singleRange - 指定的 Unicode 範圍
返回:
非上下文的數字成形器
拋出:
IllegalArgumentException - 如果範圍不是單個範圍

getContextualShaper

public static NumericShaper getContextualShaper(int ranges)
返回提供的 unicode 範圍的上下文成形器。將 Latin-1(歐洲語)數字轉換成與前述文本範圍對應的十進制數字(如果該範圍是提供的範圍之一)。通過或操作連接這些值(如 NumericShaper.ARABIC | NumericShaper.THAI)來表示多個範圍。該成形器假定 EUROPEAN 為初始上下文,即如果在字元串中在任何強方向文本之前碰到 EUROPEAN 數字,則該上下文將被假定為 EUROPEAN,因此將不成形數字。

參數:
ranges - 指定的 Unicode 範圍
返回:
指定範圍的成形器

getContextualShaper

public static NumericShaper getContextualShaper(int ranges,
                                                int defaultContext)
返回提供的 unicode 範圍的上下文成形器。將 Latin-1(歐洲語)數字轉換成與前述文本範圍對應的十進制數字(如果該範圍是提供的範圍之一)。通過或操作連接這些值(例如 NumericShaper.ARABIC | NumericShaper.THAI)來表示多個範圍。該成形器將 defaultContext 用作初始上下文。

參數:
ranges - 指定的 Unicode 範圍
defaultContext - 初始上下文,如 NumericShaper.EUROPEAN
返回:
指定 Unicode 範圍的成形器。
拋出:
IllegalArgumentException - 如果指定的 defaultContext 不是一個有效範圍。

shape

public void shape(char[] text,
                  int start,
                  int count)
轉換文本中在 start 和 start + count 之間出現的數字。

參數:
text - 要轉換的字元陣列
start - 要開始轉換的 text 的索引
count - 要轉換的 text 中的字元數
拋出:
IndexOutOfBoundsException - 如果 start 或 start + count 超出範圍
NullPointerException - 如果 text 為 null

shape

public void shape(char[] text,
                  int start,
                  int count,
                  int context)
使用提供的上下文,轉換文本中在 start 和 start + count 之間出現的數字。如果該成形器不是上下文成形器,則忽略上下文。

參數:
text - 字元陣列
start - 要開始轉換的 text 的索引
count - 要轉換的 text 中的字元數
context - 向其轉換字元(如 NumericShaper.EUROPEAN)的上下文
拋出:
IndexOutOfBoundsException - 如果 start 或 start + count 超出範圍
NullPointerException - 如果 text 為 null
IllegalArgumentException - 如果這是一個上下文成形器,並且指定的 context 不是一個有效範圍。

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(Object o)
如果指定的物件是 NumericShaper 的一個實例,並且完全一致地成形到此實例,則返回 true。

覆寫:
類別 Object 中的 equals
參數:
o - 要與此 NumericShaper 進行比較的指定物件
返回:
如果 oNumericShaper 的一個實例,並且以相同的方式成形,則返回 true;否則返回 false
另請參見:
Object.equals(java.lang.Object)

toString

public String toString()
返回描述此成形器的 String。該方法僅用於除錯目的。

覆寫:
類別 Object 中的 toString
返回:
描述此成形器的 String

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only