JavaTM 2 Platform
Std. Ed. v1.3

java.awt
クラス FontMetrics

java.lang.Object
  |
  +--java.awt.FontMetrics
すべての実装インタフェース:
Serializable

public abstract class FontMetrics
extends Object
implements Serializable

FontMetrics クラスは、特定の画面での特定のフォントに関する描画情報をカプセル化するフォントメトリックオブジェクトを定義します。

サブクラスについての注意: これらのメソッドの多くは相互に再帰的な閉じたループを形成するため、サブクラスを使用するとき無限の再帰を避けるためにこのようなループの各々に少なくとも 1 つのメソッドを実装するように留意する必要があります。とりわけ、次のものは正確さを保証し無限の再帰を避けるために、オーバーライドが推奨されるメソッドの最小限のセットです (ほかのサブセットも同様に実行可能)。

このクラスの各メソッドでの実装は効率的ではないため、通常は、より効率的なツールキット特有の実装でオーバーライドされていることに注意してください。

アプリケーションが AWT に対して座標 (xy) に文字を配置するように要求すると、文字はその参照ポイント (添付イメージでドットとして表示されている) がその位置に置かれるように配置されます。参照ポイントは、文字の「ベースライン」と呼ばれる水平ラインを指定します。通常の出力では、文字のベースラインの位置揃えをしてください。

さらに、フォントのすべての文字は「アセント」、「ディセント」、および「有効幅」を持ちます。アセントは、ベースラインから文字の上端までの量のことです。ディセントは、ベースラインから文字の下端までの量のことです。有効幅は、AWT による次の文字の配置位置を示します。

文字配列または文字列も、アセント、ディセント、および有効幅を持つことがあります。配列のアセントは、配列内の文字の最大アセントです。ディセントは配列内の文字の最大ディセントです。有効幅は、配列内の各文字の有効幅の合計です。有効 String String のベースラインに沿った距離です。この距離は、String のセンタリングまたは、右揃えのために使用される幅です。文字の幅はそのコンテキストによりばらつきがあるため、有効 String は必ずしも単独で測定した文字の合計ではないことに注意してください。たとえば、アラビア語のテキストの場合、他の文字と結合するために文字の形が変わります。他のスクリプトの場合でも、特定の文字シーケンスは合字 という単一形状で表現されます。個々に文字をカウントすると、こういう変換はカウントされません。

導入されたバージョン:
JDK1.0
関連項目:
Font, 直列化された形式

フィールドの概要
protected  Font font
          フォントメトリックスの作成側となる実際の Font です。
 
コンストラクタの概要
protected FontMetrics(Font font)
          指定された Font の高さと幅、およびその Font の特定の文字グリフを調べるための新しい FontMetrics オブジェクトを作成します。
 
メソッドの概要
 int bytesWidth(byte[] data, int off, int len)
          指定された文字配列をこの Font で表示するための有効幅の合計を返します。
 int charsWidth(char[] data, int off, int len)
          指定された文字配列をこの Font で表示するための有効幅の合計を返します。
 int charWidth(char ch)
          この Font の指定した文字の有効幅を返します。
 int charWidth(int ch)
          この Font の文字の有効幅を返します。
 int getAscent()
          この FontMetrics オブジェクトが記述する Font の「フォントアセント」を判定します。
 int getDescent()
          この FontMetrics オブジェクトが記述する Font の「フォントディセント」を判定します。
 Font getFont()
          この FontMetrics オブジェクトが記述する Font を返します。
 int getHeight()
          このフォントのテキスト 1 行の標準の高さを取得します。
 int getLeading()
          この FontMetrics オブジェクトが記述する Font の「標準レディング」を判定します。
 LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit, Graphics context)
          指定された Graphics コンテキストで、指定された文字配列の LineMetrics オブジェクトを返します。
 LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex, int limit, Graphics context)
          指定された Graphics コンテキストで、指定された CharacterIteratorLineMetrics オブジェクトを返します。
 LineMetrics getLineMetrics(String str, Graphics context)
          指定された Graphics コンテキストで、指定された StringLineMetrics オブジェクトを返します。
 LineMetrics getLineMetrics(String str, int beginIndex, int limit, Graphics context)
          指定された Graphics コンテキストで、指定された StringLineMetrics オブジェクトを返します。
 int getMaxAdvance()
          この Font の文字の最大有効幅を返します。
 int getMaxAscent()
          この FontMetrics オブジェクトが記述する Font の最大アセントを判定します。
 Rectangle2D getMaxCharBounds(Graphics context)
          指定された Graphics コンテキストで、最大の境界を持つ文字の境界を返します。
 int getMaxDecent()
          推奨されていません。 JDK バージョン 1.1.1 以降は、getMaxDescent() に置き換えられました。
 int getMaxDescent()
          この FontMetrics オブジェクトが記述する Font の最大ディセントを判定します。
 Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit, Graphics context)
          指定された Graphics コンテキストで、指定された文字配列の境界を返します。
 Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex, int limit, Graphics context)
          指定された Graphics コンテキストで、指定された CharacterIterator 内のインデックス付き文字列の境界を返します。
 Rectangle2D getStringBounds(String str, Graphics context)
          指定された Graphics コンテキストで、指定された String の境界を返します。
 Rectangle2D getStringBounds(String str, int beginIndex, int limit, Graphics context)
          指定された Graphics コンテキストで、指定された String の境界を返します。
 int[] getWidths()
          この Font の最初の 256 文字の有効幅を取得します。
 boolean hasUniformLineMetrics()
          Font が均一のラインメトリックスを持つかどうかを判定します。
 int stringWidth(String str)
          指定された String を、この Font で表示するための有効幅の合計を返します。
 String toString()
          この FontMetrics オブジェクトの値の String 表現を返します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

font

protected Font font
フォントメトリックスの作成側となる実際の Font です。null を指定することはできません。
関連項目:
getFont()
コンストラクタの詳細

FontMetrics

protected FontMetrics(Font font)
指定された Font の高さと幅、およびその Font の特定の文字グリフを調べるための新しい FontMetrics オブジェクトを作成します。
パラメータ:
font - フォント
関連項目:
Font
メソッドの詳細

getFont

public Font getFont()
この FontMetrics オブジェクトが記述する Font を返します。
戻り値:
この FontMetrics オブジェクトが記述する Font

getLeading

public int getLeading()
この FontMetrics オブジェクトが記述する Font の「標準レディング」を判定します。標準レディング (行間の間隔) は、テキストのある行のディセントとその次の行のアセントの間で確保される論理的な量です。高さのメトリックスは、この余分な空間を含めて計算されます。
戻り値:
Font の標準レディング
関連項目:
getHeight(), getAscent(), getDescent()

getAscent

public int getAscent()
この FontMetrics オブジェクトが記述する Font の「フォントアセント」を判定します。フォントアセントは、フォントのベースラインからほとんどの英数字の上端までの距離です。Font の文字によっては、フォントのアセントラインからはみ出す場合があります。
戻り値:
Font のフォントアセント
関連項目:
getMaxAscent()

getDescent

public int getDescent()
この FontMetrics オブジェクトが記述する Font の「フォントディセント」を判定します。フォントディセントは、フォントのベースラインからディセンダを持つほとんどの英数字の下端までの距離です。Font の文字によっては、フォントのディセントラインからはみ出す場合があります。
戻り値:
Font のフォントディセント
関連項目:
getMaxDescent()

getHeight

public int getHeight()
このフォントのテキスト 1 行の標準の高さを取得します。これは、隣接するテキスト行のベースラインの間の距離です。この距離は、レディング、アセント、およびディセントの合計値です。ただし、この距離間隔で位置付けられるテキスト行がお互いに離れているとは保証されていません。たとえば、ある文字が標準アセントメトリックスまたは標準ディセントメトリックスのどちらかを越えている場合、行がオーバーラップすることがあります。
戻り値:
フォントの標準高さ
関連項目:
getLeading(), getAscent(), getDescent()

getMaxAscent

public int getMaxAscent()
この FontMetrics オブジェクトが記述する Font の最大アセントを判定します。文字は、この高さからはみ出すことはありません。
戻り値:
Font の文字の最大アセント
関連項目:
getAscent()

getMaxDescent

public int getMaxDescent()
この FontMetrics オブジェクトが記述する Font の最大ディセントを判定します。文字は、この高さからはみ出すことはありません。
戻り値:
Font の文字の最大ディセント
関連項目:
getDescent()

getMaxDecent

public int getMaxDecent()
推奨されていません。 JDK バージョン 1.1.1 以降は、getMaxDescent() に置き換えられました。

下位互換性のためだけに用意されています。
関連項目:
getMaxDescent()

getMaxAdvance

public int getMaxAdvance()
この Font の文字の最大有効幅を返します。有効幅は、文字列のベースラインの左端の点から右端の点までの距離です。有効 String は、必ずしも文字の有効値の合計ではありません。
戻り値:
Font の任意の文字の最大有効幅。最大有効幅がわからない場合は -1

charWidth

public int charWidth(int ch)
この Font の文字の有効幅を返します。有効幅は、文字列のベースラインの左端の点から右端の点までの距離です。有効 String は、必ずしも文字の有効値の合計ではないことに注意してください。
パラメータ:
ch - 測定対象の文字
戻り値:
この FontMetrics オブジェクトが記述する Font の指定された char の有効幅
関連項目:
charsWidth(char[], int, int), stringWidth(String)

charWidth

public int charWidth(char ch)
この Font の指定した文字の有効幅を返します。有効幅は、文字列のベースラインの左端の点から右端の点までの距離です。有効 String は、必ずしも文字の有効値の合計ではないことに注意してください。
戻り値:
この FontMetrics オブジェクトが記述する Font の指定された char の有効幅
関連項目:
charsWidth(char[], int, int), stringWidth(String)

stringWidth

public int stringWidth(String str)
指定された String を、この Font で表示するための有効幅の合計を返します。有効幅とは、文字列のベースライン上の左端の点から右端の点までの距離です。

このメソッドで返される有効幅の合計は描画コンテキストを考慮していないことに注意してください。したがって、アンチエイリアスおよび部分メトリックスヒントが有効幅に影響を与えることがあります。アンチエイリアスおよび部分メトリックスヒントを有効にするには、このメソッドではなく getStringBounds (String, Graphics) を使用してください。有効 String は必ずしも文字の有効値の合計ではありません。

パラメータ:
str - 計測される String
戻り値:
この FontMetrics が記述する Font の指定された String の有効幅
関連項目:
bytesWidth(byte[], int, int), charsWidth(char[], int, int), getStringBounds(String, Graphics)

charsWidth

public int charsWidth(char[] data,
                      int off,
                      int len)
指定された文字配列をこの Font で表示するための有効幅の合計を返します。有効幅は、文字列のベースラインの左端の点から右端の点までの距離です。有効 String は、必ずしも文字の有効値の合計ではありません。これは指定した範囲で文字の String を計測することと同じです。
パラメータ:
data - 測定される文字の配列
off - 配列中の文字の開始オフセット
len - 配列から計測される文字数
戻り値:
この FontMetrics オブジェクトが記述するフォントの指定された char 配列の部分配列の有効幅
関連項目:
charWidth(int), charWidth(char), bytesWidth(byte[], int, int), stringWidth(String)

bytesWidth

public int bytesWidth(byte[] data,
                      int off,
                      int len)
指定された文字配列をこの Font で表示するための有効幅の合計を返します。有効幅は、文字列のベースラインの左端の点から右端の点までの距離です。有効 String は、必ずしも文字の有効値の合計ではありません。これは指定した範囲で文字の String を計測することと同じです。
パラメータ:
data - 計測されるバイトの配列
off - 配列中のバイトの開始オフセット
len - 配列から計測されるバイト数
戻り値:
この FontMetrics オブジェクトが記述する Font の指定された byte 配列の部分配列の有効幅
関連項目:
charsWidth(char[], int, int), stringWidth(String)

getWidths

public int[] getWidths()
この Font の最初の 256 文字の有効幅を取得します。有効幅は、文字列のベースラインの左端の点から右端の点までの距離です。有効 String は、必ずしも文字の有効値の合計ではないことに注意してください。
戻り値:
この FontMetrics オブジェクトが記述する Font の文字の有効幅が格納されている配列

hasUniformLineMetrics

public boolean hasUniformLineMetrics()
Font が均一のラインメトリックスを持つかどうかを判定します。複合フォントは、さまざまな文字セットを網羅するために複数のフォントで構成されることがあります。その場合、FontLineMetrics オブジェクトは均一ではありません。フォントごとに、別々のアセント、ディセント、メトリックスなどを持つことがあります。この情報は、行計測および行分割に必要になる場合があります。
戻り値:
フォントが均一のラインメトリックスを持つ場合は true、そうでない場合は false
関連項目:
Font.hasUniformLineMetrics()

getLineMetrics

public LineMetrics getLineMetrics(String str,
                                  Graphics context)
指定された Graphics コンテキストで、指定された StringLineMetrics オブジェクトを返します。
パラメータ:
str - 指定された String
context - 指定された Graphics コンテキスト
戻り値:
指定された String および Graphics コンテキストで作成された LineMetrics オブジェクト
関連項目:
Font.getLineMetrics(String, FontRenderContext)

getLineMetrics

public LineMetrics getLineMetrics(String str,
                                  int beginIndex,
                                  int limit,
                                  Graphics context)
指定された Graphics コンテキストで、指定された StringLineMetrics オブジェクトを返します。
パラメータ:
str - 指定された String
beginIndex - str の初期オフセット
limit - str の長さ
context - 指定された Graphics コンテキスト
戻り値:
指定された String および Graphics コンテキストで作成された LineMetrics オブジェクト
関連項目:
Font.getLineMetrics(String, int, int, FontRenderContext)

getLineMetrics

public LineMetrics getLineMetrics(char[] chars,
                                  int beginIndex,
                                  int limit,
                                  Graphics context)
指定された Graphics コンテキストで、指定された文字配列の LineMetrics オブジェクトを返します。
パラメータ:
chars - 指定された文字配列
beginIndex - chars の初期オフセット
limit - chars の長さ
context - 指定された Graphics コンテキスト
戻り値:
指定された文字配列および Graphics コンテキストで作成された LineMetrics オブジェクト
関連項目:
Font.getLineMetrics(char[], int, int, FontRenderContext)

getLineMetrics

public LineMetrics getLineMetrics(CharacterIterator ci,
                                  int beginIndex,
                                  int limit,
                                  Graphics context)
指定された Graphics コンテキストで、指定された CharacterIteratorLineMetrics オブジェクトを返します。
パラメータ:
ci - 指定された CharacterIterator
beginIndex - ci の初期オフセット
limit - ci の終了インデックス
context - 指定された Graphics コンテキスト
戻り値:
指定された引数で作成された LineMetrics オブジェクト
関連項目:
Font.getLineMetrics(CharacterIterator, int, int, FontRenderContext)

getStringBounds

public Rectangle2D getStringBounds(String str,
                                   Graphics context)
指定された Graphics コンテキストで、指定された String の境界を返します。この境界は、String を配置するために使用されます。
パラメータ:
str - 指定された String
context - 指定された Graphics コンテキスト
戻り値:
指定された Graphics コンテキストを持ち、指定された String のバウンディングボックスを表す Rectangle2D
関連項目:
Font.getStringBounds(String, FontRenderContext)

getStringBounds

public Rectangle2D getStringBounds(String str,
                                   int beginIndex,
                                   int limit,
                                   Graphics context)
指定された Graphics コンテキストで、指定された String の境界を返します。この境界は、String を配置するために使用されます。
パラメータ:
str - 指定された String
beginIndex - str の先頭のオフセット
limit - str の長さ
context - 指定された Graphics コンテキスト
戻り値:
指定された Graphics コンテキストを持ち、指定された String のバウンディングボックスを表す Rectangle2D}
関連項目:
Font.getStringBounds(String, int, int, FontRenderContext)

getStringBounds

public Rectangle2D getStringBounds(char[] chars,
                                   int beginIndex,
                                   int limit,
                                   Graphics context)
指定された Graphics コンテキストで、指定された文字配列の境界を返します。この境界は、指定された文字配列、beginIndex、および limit で作成された String を配置するために使用されます。
パラメータ:
chars - 文字配列
beginIndex - 文字配列の初期オフセット
limit - 文字配列の長さ
context - 指定された Graphics コンテキスト
戻り値:
指定された Graphics コンテキストを持ち、指定された文字配列のバウンディングボックスを表す Rectangle2D
関連項目:
Font.getStringBounds(char[], int, int, FontRenderContext)

getStringBounds

public Rectangle2D getStringBounds(CharacterIterator ci,
                                   int beginIndex,
                                   int limit,
                                   Graphics context)
指定された Graphics コンテキストで、指定された CharacterIterator 内のインデックス付き文字列の境界を返します。
パラメータ:
ci - 指定された CharacterIterator
beginIndex - ci の初期オフセット
limit - ci の終了インデックス
context - 指定された Graphics コンテキスト
戻り値:
指定された Graphics コンテキストを持ち、指定された CharacterIterator 内のインデックス付き文字のバウンディングボックスを表す Rectangle2D
関連項目:
Font.getStringBounds(CharacterIterator, int, int, FontRenderContext)

getMaxCharBounds

public Rectangle2D getMaxCharBounds(Graphics context)
指定された Graphics コンテキストで、最大の境界を持つ文字の境界を返します。
パラメータ:
context - 指定された Graphics コンテキスト
戻り値:
最大の境界を持つ文字のバウンディングボックスを表す Rectangle2D
関連項目:
Font.getMaxCharBounds(FontRenderContext)

toString

public String toString()
この FontMetrics オブジェクトの値の String 表現を返します。
オーバーライド:
クラス Object 内の toString
戻り値:
この FontMetrics オブジェクトの String 表現
導入されたバージョン:
JDK1.0.

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.