JavaTM 2 Platform
Standard Ed. 5.0

java.awt
クラス FontMetrics

java.lang.Object
  上位を拡張 java.awt.FontMetrics
すべての実装されたインタフェース:
Serializable

public abstract class FontMetrics
extends Object
implements Serializable

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

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

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

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

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

文字配列または文字列も、アセント、ディセント、および有効幅を持つことができます。配列のアセントは、配列内の文字の最大アセントです。ディセントは配列内の文字の最大ディセントです。有効幅は、配列内の各文字の有効幅の合計です。有効 StringString のベースラインに沿った距離です。この距離は、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 codePoint)
          この 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
関連項目:
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 行の標準の高さを取得します。これは、隣接するテキスト行のベースラインの間の距離です。この距離は、レディング、アセント、およびディセントの合計値です。四捨五入の都合上、この値は getAscent()、getDescent()、getLeading() の合計と一致しないことがあります。ただし、この距離間隔で位置付けられるテキスト行が互いに離れている保証はありません。たとえば、ある文字が標準アセントメトリックスまたは標準ディセントメトリックスのどちらかを越えている場合、行がオーバーラップすることがあります。

戻り値:
フォントの標準高さ
関連項目:
getLeading(), getAscent(), getDescent()

getMaxAscent

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

戻り値:
Font の文字の最大アセント
関連項目:
getAscent()

getMaxDescent

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

戻り値:
Font の文字の最大ディセント
関連項目:
getDescent()

getMaxDecent

@Deprecated
public int getMaxDecent()
推奨されていません。 JDK バージョン 1.1.1 以降は getMaxDescent() を使用します。

下位互換性のためだけに用意されています。

戻り値:
Font の文字の最大ディセント
関連項目:
getMaxDescent()

getMaxAdvance

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

戻り値:
Font の任意の文字の最大有効幅。最大有効幅がわからない場合は -1

charWidth

public int charWidth(int codePoint)
この Font の指定した文字の有効幅を返します。有効幅は、文字列のベースラインの左端の点から右端の点までの距離です。有効 String は、必ずしも文字の有効幅の合計ではないことに注意してください。

このメソッドは指定された文字が有効な Unicode コードポイントであるかどうかを検証しません。呼び出し側で、必要に応じて Character.isValidCodePoint を使用して、文字値を検証する必要があります。

パラメータ:
codePoint - 測定する文字 (Unicode コードポイント)
戻り値:
この FontMetrics オブジェクトが記述する Font の指定された文字の有効幅
関連項目:
charsWidth(char[], int, int), stringWidth(String)

charWidth

public int charWidth(char ch)
この Font の指定した文字の有効幅を返します。有効幅は、文字列のベースラインの左端の点から右端の点までの距離です。有効 String は、必ずしも文字の有効幅の合計ではないことに注意してください。

注: このメソッドは補助文字を処理できません。補助文字を含むすべての Unicode 文字をサポートするには、charWidth(int) メソッドを使用します。

パラメータ:
ch - 測定対象の文字
戻り値:
この FontMetrics オブジェクトが記述する Font の指定された文字の有効幅
関連項目:
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
Standard Ed. 5.0

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

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