- すべての実装されたインタフェース:
Serializable
public abstract class FontMetrics extends Object implements Serializable
FontMetrics
クラスは、特定の画面上での特定のフォントの描画に関する情報をカプセル化するフォント・メトリックス・オブジェクトを定義します。
サブクラスについての注意: これらのメソッドの多くは相互に再帰的な閉じたループを形成するため、サブクラスを使用するときは無限の再帰を避けるために、このようなループの各々に少なくとも1つのメソッドを実装するように留意する必要があります。 特に次に挙げるものは、正確さを保証し無限の再帰を避けるために、オーバーライドが推奨される最低限のメソッドです(同様のメソッドは他にもあります)。
このクラスの各メソッドでの実装は効率的ではないため、通常は、より効率的なツールキット特有の実装でオーバーライドされます。
アプリケーションが座標(x, y)に文字を配置するように要求すると、文字はその参照ポイント(添付イメージでドットとして表示されている)がその位置に置かれるように配置されます。 参照ポイントは、文字のベースラインと呼ばれる水平ラインを指定します。 通常の出力では、文字のベースラインの位置揃えをしてください。
さらに、フォントのすべての文字はアセント、ディセント、および有効幅を持ちます。 アセントは、ベースラインから文字の上端までの量のことです。 ディセントは、ベースラインから文字の下端までの量のことです。 有効幅は、AWTによる次の文字の配置位置を示します。
文字配列または文字列も、アセント、ディセント、および有効幅を持つことができます。 配列のアセントは、配列内の文字の最大アセントです。 ディセントは配列内の文字の最大ディセントです。 有効幅は、配列内の各文字の有効幅の合計です。 String
の有効幅は、String
のベースラインに沿った距離です。 この距離は、String
のセンタリングまたは、右揃えのために使用される幅です。
文字の幅はそのコンテキストによりばらつきがあるため、String
の有効幅は必ずしも単独で測定した文字の有効幅の合計ではありません。 たとえば、アラビア語のテキストの場合、ほかの文字と結合するために文字の形が変わります。 ほかのスクリプトの場合でも、特定の文字シーケンスは合字という単一形状で表現されます。 個々に文字をカウントするときには、このような変換はカウントされません。
フォント・メトリックスはベースラインを基準にしています。つまり、通常は、フォントに適用される回転には依存しません(可能なグリッド・ヒンティング効果を法とします)。 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
を取得します。FontRenderContext
getFontRenderContext()
テキストを測定するためにこのFontMetrics
オブジェクトによって使用されるFontRenderContext
を取得します。int
getHeight()
このフォントのテキスト1行の標準の高さを取得します。int
getLeading()
このFontMetrics
オブジェクトによって記述されたFont
の標準レディングを判定します。LineMetrics
getLineMetrics(char[] chars, int beginIndex, int limit, Graphics context)
指定されたGraphics
コンテキスト内の指定されたchar配列のLineMetrics
オブジェクトを返します。LineMetrics
getLineMetrics(String str, int beginIndex, int limit, Graphics context)
指定されたGraphics
コンテキスト内の指定されたString
のLineMetrics
オブジェクトを返します。LineMetrics
getLineMetrics(String str, Graphics context)
指定されたGraphics
コンテキスト内の指定されたString
のLineMetrics
オブジェクトを返します。LineMetrics
getLineMetrics(CharacterIterator ci, int beginIndex, int limit, Graphics context)
指定されたGraphics
コンテキスト内の指定されたCharacterIterator
のLineMetrics
オブジェクトを返します。int
getMaxAdvance()
このFont
内の任意の文字の最大有効幅を取得します。int
getMaxAscent()
このFontMetrics
オブジェクトによって記述されたFont
の最大アセントを判定します。Rectangle2D
getMaxCharBounds(Graphics context)
指定されたGraphics
コンテキスト内の最大の境界を持つ文字の境界を返します。int
getMaxDecent()
非推奨。JDK Version 1.1.1以降は、getMaxDescent()
に置き換えられています。int
getMaxDescent()
このFontMetrics
オブジェクトによって記述されたFont
の最大ディセントを判定します。Rectangle2D
getStringBounds(char[] chars, int beginIndex, int limit, Graphics context)
指定されたGraphics
コンテキスト内の指定された文字の配列の境界を返します。Rectangle2D
getStringBounds(String str, int beginIndex, int limit, Graphics context)
指定されたGraphics
コンテキスト内の指定されたString
の境界を返します。Rectangle2D
getStringBounds(String str, Graphics context)
指定されたGraphics
コンテキスト内の指定されたString
の境界を返します。Rectangle2D
getStringBounds(CharacterIterator ci, int beginIndex, int limit, Graphics context)
指定されたGraphics
コンテキスト内の指定されたCharacterIterator
でインデックスが付けられた文字の境界を返します。int[]
getWidths()
Font
内の最初の256文字の有効幅を取得します。boolean
hasUniformLineMetrics()
Font
に均一のライン・メトリックスが含まれているかどうかを確認します。int
stringWidth(String str)
指定されたString
をこのFont
で表示するための有効幅の合計を返します。String
toString()
このFontMetrics
オブジェクトの値の表現をString
として返します。
-
フィールド詳細
-
コンストラクタの詳細
-
FontMetrics
protected FontMetrics(Font font)指定されたFont
およびそのFont
内の特定の文字グリフに関する高さと幅の情報を見つけるための新しいFontMetrics
オブジェクトを作成します。- パラメータ:
font
-Font
- 関連項目:
Font
-
-
メソッドの詳細
-
getFont
public Font getFont()このFontMetrics
オブジェクトによって記述されたFont
を取得します。- 戻り値:
- この
FontMetrics
オブジェクトによって記述されたFont
。
-
getFontRenderContext
public FontRenderContext getFontRenderContext()テキストを測定するためにこのFontMetrics
オブジェクトによって使用されるFontRenderContext
を取得します。Graphics
パラメータを取るこのクラスのメソッドは、このFontRenderContext
ではなく、そのGraphics
オブジェクトのFontRenderContext
を使用してテキストを測定します。- 戻り値:
- この
FontMetrics
オブジェクトが使用するFontRenderContext
。 - 導入されたバージョン:
- 1.6
-
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 Version 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
で表示するための有効幅の合計を返します。 有効幅は、文字列のベースラインの左端の点から右端の点までの距離です。String
の有効幅は、必ずしも各文字の有効幅の合計ではありません。- パラメータ:
str
- 測定対象のString
- 戻り値:
- この
FontMetrics
が記述するFont
の指定されたString
の有効幅。 - 例外:
NullPointerException
- strがnullの場合。- 関連項目:
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
配列の部分配列の有効幅。 - 例外:
NullPointerException
-data
がnullの場合。IndexOutOfBoundsException
-off
引数とlen
引数が、data
配列の境界の外側の文字を指す場合。- 関連項目:
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
配列の部分配列の有効幅。 - 例外:
NullPointerException
-data
がnullの場合。IndexOutOfBoundsException
-off
引数とlen
引数が、data
配列の境界の外側のバイトを指す場合。- 関連項目:
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
コンテキスト内の指定されたString
のLineMetrics
オブジェクトを返します。- パラメータ:
str
- 指定されたString
context
- 指定されたGraphics
コンテキスト- 戻り値:
- 指定された
String
とGraphics
コンテキストで作成されたLineMetrics
オブジェクト。 - 関連項目:
Font.getLineMetrics(String, FontRenderContext)
-
getLineMetrics
public LineMetrics getLineMetrics(String str, int beginIndex, int limit, Graphics context)指定されたGraphics
コンテキスト内の指定されたString
のLineMetrics
オブジェクトを返します。- パラメータ:
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
コンテキスト内の指定されたchar配列の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
コンテキスト内の指定されたCharacterIterator
のLineMetrics
オブジェクトを返します。- パラメータ:
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
をレイアウトするために使用されます。注: 返された境界は、ベースラインを基準にした座標で表されています(
class notes
を参照してください)。- パラメータ:
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
をレイアウトするために使用されます。注: 返された境界は、ベースラインを基準にした座標で表されています(
class notes
を参照してください)。- パラメータ:
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
を配置するために使用されます。注: 返された境界は、ベースラインを基準にした座標で表されています(
class notes
を参照してください)。- パラメータ:
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
でインデックスが付けられた文字の境界を返します。注: 返された境界は、ベースラインを基準にした座標で表されています(
class notes
を参照してください)。- パラメータ:
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
として返します。
-