JavaTM 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 10 進数に変換するために使用します。このクラスは主に、データの提示に各国の数字の形状を使いながら内部的には 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 の範囲と 10 進数を識別します。
static int BENGALI
          BENGALI の範囲と 10 進数を識別します。
static int DEVANAGARI
          DEVANAGARI の範囲と 10 進数を識別します。
static int EASTERN_ARABIC
          ARABIC の範囲と ARABIC_EXTENDED の 10 進数を識別します。
static int ETHIOPIC
          ETHIOPIC の範囲と 10 進数を識別します。
static int EUROPEAN
          Latin-1 (ヨーロッパ言語) と拡張範囲、および Latin-1 (ヨーロッパ言語) の 10 進数を識別します。
static int GUJARATI
          GUJARATI の範囲と 10 進数を識別します。
static int GURMUKHI
          GURMUKHI の範囲と 10 進数を識別します。
static int KANNADA
          KANNADA の範囲と 10 進数を識別します。
static int KHMER
          KHMER の範囲と 10 進数を識別します。
static int LAO
          LAO の範囲と 10 進数を識別します。
static int MALAYALAM
          MALAYALAM の範囲と 10 進数を識別します。
static int MONGOLIAN
          MONGOLIAN の範囲と 10 進数を識別します。
static int MYANMAR
          MYANMAR の範囲と 10 進数を識別します。
static int ORIYA
          ORIYA の範囲と 10 進数を識別します。
static int TAMIL
          TAMIL の範囲と 10 進数を識別します。
static int TELUGU
          TELUGU の範囲と 10 進数を識別します。
static int THAI
          THAI の範囲と 10 進数を識別します。
static int TIBETAN
          TIBETAN の範囲と 10 進数を識別します。
 
メソッドの概要
 boolean equals(Object o)
          指定されたオブジェクトが NumericShaper のインスタンスであり、これと同じ方法で形状決定を行う場合は true、そうでない場合は false を返します。
static NumericShaper getContextualShaper(int ranges)
          指定された Unicode の 1 つまたは複数の範囲に対する、コンテキスト依存の形状決定要因を返します。
static NumericShaper getContextualShaper(int ranges, int defaultContext)
          指定された Unicode の 1 つまたは複数の範囲に対する、コンテキスト依存の形状決定要因を返します。
 int getRanges()
          形状決定を行うすべての範囲に対する値の論理和を求める int を返します。
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 (ヨーロッパ言語) の 10 進数を識別します。

関連項目:
定数フィールド値

ARABIC

public static final int ARABIC
ARABIC の範囲と 10 進数を識別します。

関連項目:
定数フィールド値

EASTERN_ARABIC

public static final int EASTERN_ARABIC
ARABIC の範囲と ARABIC_EXTENDED の 10 進数を識別します。

関連項目:
定数フィールド値

DEVANAGARI

public static final int DEVANAGARI
DEVANAGARI の範囲と 10 進数を識別します。

関連項目:
定数フィールド値

BENGALI

public static final int BENGALI
BENGALI の範囲と 10 進数を識別します。

関連項目:
定数フィールド値

GURMUKHI

public static final int GURMUKHI
GURMUKHI の範囲と 10 進数を識別します。

関連項目:
定数フィールド値

GUJARATI

public static final int GUJARATI
GUJARATI の範囲と 10 進数を識別します。

関連項目:
定数フィールド値

ORIYA

public static final int ORIYA
ORIYA の範囲と 10 進数を識別します。

関連項目:
定数フィールド値

TAMIL

public static final int TAMIL
TAMIL の範囲と 10 進数を識別します。タミル語には 10 進数の 0 はないので、Latin-1 (ヨーロッパ言語) の 0 が使用されます。

関連項目:
定数フィールド値

TELUGU

public static final int TELUGU
TELUGU の範囲と 10 進数を識別します。

関連項目:
定数フィールド値

KANNADA

public static final int KANNADA
KANNADA の範囲と 10 進数を識別します。

関連項目:
定数フィールド値

MALAYALAM

public static final int MALAYALAM
MALAYALAM の範囲と 10 進数を識別します。

関連項目:
定数フィールド値

THAI

public static final int THAI
THAI の範囲と 10 進数を識別します。

関連項目:
定数フィールド値

LAO

public static final int LAO
LAO の範囲と 10 進数を識別します。

関連項目:
定数フィールド値

TIBETAN

public static final int TIBETAN
TIBETAN の範囲と 10 進数を識別します。

関連項目:
定数フィールド値

MYANMAR

public static final int MYANMAR
MYANMAR の範囲と 10 進数を識別します。

関連項目:
定数フィールド値

ETHIOPIC

public static final int ETHIOPIC
ETHIOPIC の範囲と 10 進数を識別します。

関連項目:
定数フィールド値

KHMER

public static final int KHMER
KHMER の範囲と 10 進数を識別します。

関連項目:
定数フィールド値

MONGOLIAN

public static final int MONGOLIAN
MONGOLIAN の範囲と 10 進数を識別します。

関連項目:
定数フィールド値

ALL_RANGES

public static final int ALL_RANGES
すべての範囲を識別します。完全なコンテキスト依存の形状決定に使用します。

関連項目:
定数フィールド値
メソッドの詳細

getShaper

public static NumericShaper getShaper(int singleRange)
指定された Unicode の範囲に対する形状決定要因を返します。Latin-1 (EUROPEAN) の数字はすべて、対応する Unicode の 10 進数に変換されます。

パラメータ:
singleRange - 指定された Unicode の範囲
戻り値:
コンテキスト依存でない数字の形状決定要因
例外:
IllegalArgumentException - 範囲が 1 つでない場合

getContextualShaper

public static NumericShaper getContextualShaper(int ranges)
指定された Unicode の 1 つまたは複数の範囲に対する、コンテキスト依存の形状決定要因を返します。範囲が指定された範囲の 1 つであれば、Latin-1 (EUROPEAN) の数字は前にあるテキストの範囲に対応する 10 進数に変換されます。複数の範囲は、NumericShaper.ARABIC | NumericShaper.THAI のように、値の論理和によって表されます。形状決定要因は、EUROPEAN を開始コンテキストとして想定します。 つまり、文字列内で方向性の強いテキストの前に EUROPEAN の数字が検出された場合、コンテキストは EUROPEAN であると見なされ、数字は形状決定されません。

パラメータ:
ranges - 指定された Unicode の範囲
戻り値:
指定された範囲に対する形状決定要因

getContextualShaper

public static NumericShaper getContextualShaper(int ranges,
                                                int defaultContext)
指定された Unicode の 1 つまたは複数の範囲に対する、コンテキスト依存の形状決定要因を返します。範囲が指定された範囲の 1 つであれば、Latin-1 (EUROPEAN) の数字は前にあるテキストの範囲に対応する 10 進数に変換されます。複数の範囲は、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 を返します。  

たとえば、アラビア語への形状決定が行われるかどうかを調べるには、次のようにします。

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

戻り値:
形状決定を行うすべての範囲に対する値

hashCode

public int hashCode()
この形状決定要因のハッシュコードを返します。

オーバーライド:
クラス Object 内の hashCode
戻り値:
この形状決定要因のハッシュコード
関連項目:
Object.hashCode()

equals

public boolean equals(Object o)
指定されたオブジェクトが NumericShaper のインスタンスであり、これと同じ方法で形状決定を行う場合は true、そうでない場合は false を返します。

オーバーライド:
クラス Object 内の equals
パラメータ:
o - この NumericShaper と比較する、 指定されたオブジェクト
戻り値:
oo のインスタンスであり、 同じ方法で形状決定を行う場合は true、 そうでない場合は false
関連項目:
Object.equals(java.lang.Object)

toString

public String toString()
この形状決定要因を記述する String を返します。このメソッドはデバッグの場合にだけ使用します。

オーバーライド:
クラス Object 内の toString
戻り値:
この形状決定要因を記述する String

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。