Java プラットフォーム 1.2

java.awt
クラス FontMetrics

java.lang.Object
  |
  +--java.awt.FontMetrics

public abstract class FontMetrics
extends Object
implements Serializable

FontMetrics クラスは、特定の画面での特定のフォントの描画に関する情報をカプセル化するフォントメトリックスオブジェクトを定義します。このクラスでの各メソッドの実装はあまり効率的ではないため、通常は、より効率的なツールキット特有の実装でオーバーライドされていることに注意してください。

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

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

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

現在の文字が、座標 (xy) の参照ポイントに配置され、その文字の有効幅が w の場合、新しい文字は参照ポイントの位置を (+ wy) として配置されます。有効幅は、文字のバウンディングボックスの幅と同じになる場合がありますが、必ずしも同じである必要はありません。特に、斜体およびイタリックのフォントには、その右上隅が有効幅を少しはみ出してしまう文字があります。

文字の配列または文字列もアセント、ディセント、および有効幅を持つことがあります。配列のアセントは、配列内の文字の最大アセントです。ディセントは、配列内の文字の最大ディセントです。有効幅は、配列内の各文字の有効幅の合計です。

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

フィールドの概要
protected  Font font
          フォントメトリックスの作成側となる実際の Font です。
 
コンストラクタの概要
protected FontMetrics(Font font)
          指定された Font の高さと幅、およびその Font の特定の文字グリフを調べるための新しい FontMetrics オブジェクトを作成します。
 
メソッドの概要
 int bytesWidth(byte[] data, int off, int len)
          指定された byte 配列をこの 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
関連項目:
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 の任意の文字の最大有効幅を取得します。有効幅とは、テキスト行で、ある文字から次の文字へ現在の位置が移動する量のことです。
戻り値:
Font の任意の文字の最大有効幅。最大有効幅がわからない場合は -1

charWidth

public int charWidth(int ch)
指定された文字のこの Font での有効幅を返します。有効幅とは、テキスト行で、ある文字から次の文字へ現在の位置が移動する長さのことです。
パラメータ:
ch - 計測される文字
戻り値:
この FontMetrics オブジェクトが記述する Font の指定された char の有効幅
関連項目:
charsWidth(char[], int, int), stringWidth(String)

charWidth

public int charWidth(char ch)
指定された文字のこの Font での有効幅を返します。有効幅とは、テキスト行で、ある文字から次の文字へ現在の位置が移動する長さのことです。
パラメータ:
ch - 計測される文字
戻り値:
この FontMetrics オブジェクトが記述する Font の指定された char の有効幅
関連項目:
charsWidth(char[], int, int), stringWidth(String)

stringWidth

public int stringWidth(String str)
指定された String を、この Font で表示するための有効幅の合計を返します。有効幅とは、テキスト行で、ある文字から次の文字へ現在の位置が移動する長さのことです。
パラメータ:
str - 計測される String
戻り値:
この FontMetrics が記述する Font の指定された String の有効幅
関連項目:
bytesWidth(byte[], int, int), charsWidth(char[], int, int)

charsWidth

public int charsWidth(char[] data,
                      int off,
                      int len)
指定された文字配列をこの Font で表示するための有効幅の合計を返します。有効幅とは、テキスト行で、ある文字から次の文字へ現在の位置が移動する長さのことです。
パラメータ:
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)
指定された byte 配列をこの Font で表示するための有効幅の合計を返します。有効幅とは、テキスト行で、ある文字から次の文字へ現在の位置が移動する長さのことです。
パラメータ:
data - 計測されるバイト配列
off - 配列中のバイトの開始オフセット
len - 配列から計測されるバイト数
戻り値:
この FontMetrics オブジェクトが記述する Font の指定された byte 配列の部分配列の有効幅
関連項目:
charsWidth(char[], int, int), stringWidth(String)

getWidths

public int[] getWidths()
Font の最初の 256 文字の有効幅を取得します。有効幅とは、テキスト行で、ある文字から次の文字へ現在の位置が移動する長さのことです。
戻り値:
この 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 表現を返します。
戻り値:
この FontMetrics オブジェクトの String 表現
オーバーライド:
クラス Object 内の toString
導入されたバージョン:
JDK1.0

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.