モジュール java.desktop
パッケージ java.awt

クラスFont

java.lang.Object
java.awt.Font
すべての実装されたインタフェース:
Serializable
直系の既知のサブクラス:
FontUIResource

public class Font
extends Object
implements Serializable
Fontクラスは、テキストを見えるように描画するために使用されるフォントを表します。 フォントは文字の連続をグリフの連続にマッピングするための情報、そしてそのグリフの連続をGraphicsComponentオブジェクトに描画するための情報を提供します。

文字とグリフ

文字は英字、数字、句読点などのアイテムを抽象的に表すシンボルです。 たとえば、'g' (ラテン小文字のG)は文字です。

グリフは文字または一連の文字を描画するために使用される図形です。 ラテン文字のような単純な書記法では、通常1つのグリフが1つの文字に対応します。 ところがグリフと文字の対応は、一般的には1対1ではありません。 たとえば「á」(アクセント記号付きのラテン小文字のA)のような文字はそれぞれ「a」と「´」に対応する2つのグリフで表されます。 一方で2つの文字「fi」を、合字の1つのグリフで表すこともできます。 アラビア語、南アジア、および東南アジアの言語のような複雑な書記法では、文字とグリフの関係はもっと複雑になり、コンテキストに応じてグリフの選択や並べ替えが必要になります。 フォントは選択された文字セットの描画で必要なグリフの集合、および文字の連続を対応するグリフの連続にマッピングするために必要な表をカプセル化します。

物理フォントと論理フォント

Javaプラットフォームでは物理フォントと論理フォントを区別します。

物理フォントは実際のフォント・ライブラリであり、グリフ・データおよび文字シーケンスとグリフ・シーケンスのマッピング表を含みます。TrueTypeやPostScript Type 1などのフォント・テクノロジが使用されます。 すべてのJavaプラットフォームの実装でTrueTypeフォントがサポートされている必要があります。他のフォント・テクノロジのサポートは実装に依存します。 物理フォントにはHelvetica、Palatino、HonMinchoなどの任意のフォント名を使用します。 通常、各物理フォントは、ラテン文字だけ、または日本語と基本的なヨーロッパ系の言語だけなどのように、特定の書記法だけをサポートします。 有効な物理フォントのセットは設定によって異なります。 特定のフォントが必要な場合、アプリケーション側でフォントをバンドルし、createFontメソッドでインスタンス化できます。

論理フォントは、Javaプラットフォームで定義されるSerif、SansSerif、Monospaced、DialogおよびDialogInputの5つのフォント・ファミリです。すべてのJava実行環境でこの5つがサポートされている必要があります。 これらの論理フォントは実際のフォント・ライブラリではありません。 代わりに、論理フォント名はJava実行環境で物理フォントにマッピングされます。 マッピングは実装、そして通常ロケールに依存し、提供される外見やメトリックスもそれに応じて異なります。 通常はさまざまな文字をカバーするため、各論理フォント名が複数の物理フォントにマッピングされます。

LabelTextFieldなどのピアAWTコンポーネントは、論理フォントだけを使用できます。

物理フォントまたは論理フォントを使用することの相対的な長所と短所については、「Javaチュートリアル」ドキュメントの「物理フォントと論理フォント」を参照してください。

フォント・フェースとフォント名

Fontは、多くのフェース(heavy、medium、oblique、gothic、およびregularなど)を持つ場合があり、 これらすべてのフェースが、同じような文字体裁デザインを持っています。

Fontオブジェクトからは3つの異なる名称を取得できます。 論理フォント名は単なるフォント構築のための名称です。 フォント・フェース名は単にフォント名と呼ばれることもあり、Helvetica Boldなどの特定のフォント・フェース名を指します。 ファミリ名はフォント・ファミリの名称であり、複数のフェースの文字体裁デザインを決定します。たとえばHelveticaがこれに該当します。

Fontクラスは、ホスト・システムのシステム・リソースにあるフォント・フェースのコレクションの中の、あるフォント・フェースのインスタンスを表します。 たとえば、Arial BoldおよびCourier Bold Italicはフォント・フェースです。 サイズ、スタイル、変形体、およびフォントの特徴の違いにより、1つのフォント・フェースに関連付けられたFontオブジェクトは複数あります。

論理フォントを実装するために適切なプラットフォーム・フォントが存在しないなどプラットフォームの制限により、グリフがリクエストされたプロパティ(例:フォントとスタイル)でレンダリングされるとは限りません。

GraphicsEnvironmentクラスのgetAllFontsメソッドは、システムで有効なすべてのフォント・フェースの配列を返します。 これらのフォント・フェースは、サイズ1、恒等変換、およびデフォルト・フォントの特徴を持つFontオブジェクトとして返されます。 ベースとなるこれらのフォントは、このクラスのderiveFontメソッドを介して、サイズ、スタイル、変形体、およびフォントの特徴が異なる新しいFontオブジェクトを派生させるために使用できます。

FontとTextAttribute

FontではほとんどのTextAttributeがサポートされます。 これにより、TextLayoutオブジェクトを明示的に構築する必要がなくなるため、下線付きテキストの描画などの操作が簡単になります。 TextAttribute値のMapを使用してフォントを構築するか派生させることによって、フォントに属性を設定できます。

一部のTextAttributesの値は直列化不可能なので、そのような値を持つFontのインスタンスを直列化しても、これらの値は直列化されません。 したがって、そのようなストリームから直列化復元されたフォントは、直列化不可能な属性を含んでいる元のフォントと等しいものにはなりません。 通常、これらの属性は特殊な状況でのみ使用され、直列化されることはまれなので、これが問題になることはほとんどありません。

  • FOREGROUNDBACKGROUNDPaint値を使用します。 サブクラスColorは直列化可能ですが、GradientPaintTexturePaintは直列化不可能です。
  • CHAR_REPLACEMENTGraphicAttribute値を使用します。 サブクラスShapeGraphicAttributeImageGraphicAttributeは直列化不可能です。
  • INPUT_METHOD_HIGHLIGHTInputMethodHighlight値を使用します。これらの値は直列化不可能です。 InputMethodHighlightを参照してください。

ユーザーがPaintGraphicAttributeのカスタム・サブクラスを作成する場合は、これらを直列化可能にして、この問題を回避することができます。 ユーザーがインプット・メソッドのハイライトを使用する場合は、回避策として、現在のプラットフォームでそのハイライトのプラットフォーム固有属性に変換し、それをフォントに設定することができます。

MapベースのコンストラクタとderiveFont APIではFONT属性は無視され、フォントで保持されません。FONT属性が存在する場合は、static getFont(java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>)メソッドを使用してください。 詳細は、TextAttribute.FONTを参照してください。

いくつかの属性は、追加の描画オーバーヘッドを発生させ、レイアウトを呼び出す可能性があります。 Fontがそのような属性を持っている場合、hasLayoutAttributes()メソッドはtrueを返します。

注: フォントを回転するとテキストのベースラインが回転することがあります。 このまれな可能性に対処するために、フォントAPIは指定に従って「ベースラインを基準にした座標で」メトリックスを返したりパラメータを受け取ったりします。 この場合、x座標はベースラインに沿った有効幅(正のxはベースラインに沿って進む方向)、y座標はxでのベースラインに対する垂線に沿った距離(正のyはベースライン・ベクトルから時計回りに90度の方向)にマップされます。 これが特に重要となるAPIは、「ベースラインを基準にした座標」を持つAPIとして示されています。

関連項目:
直列化された形式
  • フィールドのサマリー

    フィールド 
    修飾子と型 フィールド 説明
    static int BOLD
    太字スタイル定数です。
    static int CENTER_BASELINE
    テキストを配置するときに、中国語、日本語、および韓国語などの表意文字の書体で使用されるベースラインです。
    static String DIALOG
    論理フォント「Dialog」の正規ファミリ名を表す文字列定数です。
    static String DIALOG_INPUT
    論理フォント「DialogInput」の正規ファミリ名を表す文字列定数です。
    static int HANGING_BASELINE
    テキストをレイアウトするときのDevanagariなどのスクリプトで使用されるベースライン。
    static int ITALIC
    イタリック・スタイル定数です。
    static int LAYOUT_LEFT_TO_RIGHT
    双方向分析でテキストが左から右に記述されていると判定されたことを示す、layoutGlyphVectorに対するフラグです。
    static int LAYOUT_NO_LIMIT_CONTEXT
    文字配列の、指定された終了位置以降のテキストを検査しないことを示す、layoutGlyphVectorに対するフラグです。
    static int LAYOUT_NO_START_CONTEXT
    文字配列の、指定された開始位置以前のテキストを検査しないことを示す、layoutGlyphVectorに対するフラグです。
    static int LAYOUT_RIGHT_TO_LEFT
    双方向分析でテキストが右から左に記述されていると判定されたことを示す、layoutGlyphVectorに対するフラグです。
    static String MONOSPACED
    論理フォント「Monospaced」の正規ファミリ名を表す文字列定数です。
    protected String name
    コンストラクタに渡される、このFontの論理名。
    static int PLAIN
    プレーン・スタイル定数です。
    protected float pointSize
    floatで表された、このFontのポイント・サイズ。
    static int ROMAN_BASELINE
    テキストを配置するときに、ローマ字の書体で通常使用されるベースラインです。
    static String SANS_SERIF
    論理フォント「SansSerif」の正規ファミリ名を表す文字列定数です。
    static String SERIF
    論理フォント「Serif」の正規ファミリ名を表す文字列定数です。
    protected int size
    整数に丸められた、このFontのポイント・サイズ。
    protected int style
    コンストラクタに渡される、このFontのスタイル。
    static int TRUETYPE_FONT
    TRUETYPE型のフォント・リソースを識別します。
    static int TYPE1_FONT
    TYPE1型のフォント・リソースを識別します。
  • コンストラクタのサマリー

    コンストラクタ 
    修飾子 コンストラクタ 説明
    protected Font​(Font font)
    指定されたfontから新しいFontを作成します。
      Font​(String name, int style, int size)
    指定された名前、スタイル、およびポイント・サイズから新しいFontを作成します。
      Font​(Map<? extends AttributedCharacterIterator.Attribute,​?> attributes)
    指定された属性を使用して、新しいFontを作成します。
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    boolean canDisplay​(char c)
    このFontに、指定された文字のグリフが含まれているかどうかをチェックします。
    boolean canDisplay​(int codePoint)
    このFontに、指定された文字のグリフが含まれているかどうかをチェックします。
    int canDisplayUpTo​(char[] text, int start, int limit)
    このFontが、startで始まり、limitで終わる指定されたtext内の文字を表示できるかどうかを示します。
    int canDisplayUpTo​(String str)
    このFontが指定されたStringを表示できるかどうかを示します。
    int canDisplayUpTo​(CharacterIterator iter, int start, int limit)
    このFontが、startで始まり、limitで終わるiterによって指定されたテキストを表示できるかどうかを示します。
    static Font createFont​(int fontFormat, File fontFile)
    指定されたフォント・タイプと指定されたフォント・ファイルを使用して、新しいFontを返します。
    static Font createFont​(int fontFormat, InputStream fontStream)
    指定されたフォント・タイプと入力データを使用して、新しいFontを返します。
    static Font[] createFonts​(File fontFile)
    指定されたファイルからデコードされたFontの新しい配列を返します。
    static Font[] createFonts​(InputStream fontStream)
    指定されたストリームからデコードされたFontの新しい配列を返します。
    GlyphVector createGlyphVector​(FontRenderContext frc, char[] chars)
    このFont内のUnicode cmapに基づいて文字からグリフに1対1にマッピングすることによって、GlyphVectorを作成します。
    GlyphVector createGlyphVector​(FontRenderContext frc, int[] glyphCodes)
    このFont内のUnicode cmapに基づいて文字からグリフに1対1にマッピングすることによって、GlyphVectorを作成します。
    GlyphVector createGlyphVector​(FontRenderContext frc, String str)
    このFont内のUnicode cmapに基づいて文字からグリフに1対1にマッピングすることによって、GlyphVectorを作成します。
    GlyphVector createGlyphVector​(FontRenderContext frc, CharacterIterator ci)
    このFont内のUnicode cmapに基づいて指定された文字からグリフに1対1にマッピングすることによって、GlyphVectorを作成します。
    static Font decode​(String str)
    str引数で説明されているFontを返します。
    Font deriveFont​(float size)
    現在のFontオブジェクトを複製し、それに新しいサイズを適用することによって、新しいFontオブジェクトを作成します。
    Font deriveFont​(int style)
    現在のFontオブジェクトを複製し、それに新しいスタイルを適用することによって、新しいFontオブジェクトを作成します。
    Font deriveFont​(int style, float size)
    このFontオブジェクトを複製し、新しいスタイルとサイズを適用することによって、新しいFontオブジェクトを作成します。
    Font deriveFont​(int style, AffineTransform trans)
    このFontオブジェクトを複製し、新しいスタイルと変形体を適用することによって、新しいFontオブジェクトを作成します。
    Font deriveFont​(AffineTransform trans)
    現在のFontオブジェクトを複製し、それに新しい変形体を適用することによって、新しいFontオブジェクトを作成します。
    Font deriveFont​(Map<? extends AttributedCharacterIterator.Attribute,​?> attributes)
    現在のFontオブジェクトを複製し、それに新しいフォント属性のセットを適用することによって、新しいFontオブジェクトを作成します。
    boolean equals​(Object obj)
    このFontオブジェクトを指定されたObjectと比較します。
    Map<TextAttribute,​?> getAttributes()
    このFontで使用可能なフォント属性のマップを返します。
    AttributedCharacterIterator.Attribute[] getAvailableAttributes()
    このFontでサポートされているすべての属性のキーを返します。
    byte getBaselineFor​(char c)
    この文字の表示に適切なベースラインを返します。
    String getFamily()
    このFontのファミリ名を返します。
    String getFamily​(Locale l)
    指定されたロケール向けにローカライズされた、このFontのファミリ名を返します。
    static Font getFont​(String nm)
    システムのプロパティ・リストからFontオブジェクトを返します。
    static Font getFont​(String nm, Font font)
    システムのプロパティ・リストから指定されたFontを取得します。
    static Font getFont​(Map<? extends AttributedCharacterIterator.Attribute,​?> attributes)
    属性に適したFontを返します。
    String getFontName()
    このFontのフォント・フェース名を返します。
    String getFontName​(Locale l)
    指定されたロケール向けにローカライズされた、Fontのフォント・フェース名を返します。
    float getItalicAngle()
    このFontのイタリックの角度を返します。
    LineMetrics getLineMetrics​(char[] chars, int beginIndex, int limit, FontRenderContext frc)
    指定された引数で作成されたLineMetricsオブジェクトを返します。
    LineMetrics getLineMetrics​(String str, int beginIndex, int limit, FontRenderContext frc)
    指定された引数で作成されたLineMetricsオブジェクトを返します。
    LineMetrics getLineMetrics​(String str, FontRenderContext frc)
    指定されたStringFontRenderContextで作成されたLineMetricsオブジェクトを返します。
    LineMetrics getLineMetrics​(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
    指定された引数で作成されたLineMetricsオブジェクトを返します。
    Rectangle2D getMaxCharBounds​(FontRenderContext frc)
    指定されたFontRenderContextで定義された、最大の境界を持つ文字の境界を返します。
    int getMissingGlyphCode()
    このFontに、指定されたUnicodeコード・ポイントのグリフがないときに使用されるglyphCodeを返します。
    String getName()
    このFontの論理名を返します。
    int getNumGlyphs()
    このFont内のグリフの数を返します。
    String getPSName()
    このFontのポストスクリプト名を返します。
    int getSize()
    整数に丸められた、このFontのポイント・サイズを返します。
    float getSize2D()
    float値で表された、このFontのポイント・サイズを返します。
    Rectangle2D getStringBounds​(char[] chars, int beginIndex, int limit, FontRenderContext frc)
    指定されたFontRenderContext内の指定された文字の配列の論理境界を返します。
    Rectangle2D getStringBounds​(String str, int beginIndex, int limit, FontRenderContext frc)
    指定されたFontRenderContext内の指定されたStringの論理境界を返します。
    Rectangle2D getStringBounds​(String str, FontRenderContext frc)
    指定されたFontRenderContext内の指定されたStringの論理境界を返します。
    Rectangle2D getStringBounds​(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
    指定されたFontRenderContext内の指定されたCharacterIteratorでインデックスが付けられた文字の論理境界を返します。
    int getStyle()
    このFontのスタイルを返します。
    AffineTransform getTransform()
    このFontに関連付けられた変形体のコピーを返します。
    int hashCode()
    このFontのハッシュ・コードを返します。
    boolean hasLayoutAttributes()
    このFontに追加のレイアウト処理を必要とする属性が含まれている場合は、trueを返します。
    boolean hasUniformLineMetrics()
    このFontに均一のライン・メトリックスが含まれているかどうかをチェックします。
    boolean isBold()
    このFontオブジェクトのスタイルがBOLDであるかどうかを示します。
    boolean isItalic()
    このFontオブジェクトのスタイルがITALICであるかどうかを示します。
    boolean isPlain()
    このFontオブジェクトのスタイルがPLAINであるかどうかを示します。
    boolean isTransformed()
    このFontオブジェクトに、Size属性以外にサイズに影響を与える変形体が含まれているかどうかを示します。
    GlyphVector layoutGlyphVector​(FontRenderContext frc, char[] text, int start, int limit, int flags)
    可能であればテキストの完全なレイアウトを実行して、新しいGlyphVectorオブジェクトを返します。
    static boolean textRequiresLayout​(char[] chars, int start, int end)
    指定されたテキストの一部が、drawString(String,int,int)およびその他のテキスト・レンダリング・メソッドを使用するときに正しくレンダリングするために、実装がレイアウト処理を呼び出す必要がある複合スクリプトからのものである場合はtrueを返します。
    String toString()
    このFontオブジェクトをString表現に変換します。

    クラス java.lang.Objectで宣言されたメソッド

    clonefinalizegetClassnotifynotifyAllwaitwaitwait
  • フィールド詳細

    • DIALOG

      public static final String DIALOG
      論理フォント「Dialog」の正規ファミリ名を表す文字列定数です。 Fontの構築で、コンパイル時に名前を検証するために役立ちます。
      導入されたバージョン:
      1.6
      関連項目:
      定数フィールド値
    • DIALOG_INPUT

      public static final String DIALOG_INPUT
      論理フォント「DialogInput」の正規ファミリ名を表す文字列定数です。 Fontの構築で、コンパイル時に名前を検証するために役立ちます。
      導入されたバージョン:
      1.6
      関連項目:
      定数フィールド値
    • SANS_SERIF

      public static final String SANS_SERIF
      論理フォント「SansSerif」の正規ファミリ名を表す文字列定数です。 Fontの構築で、コンパイル時に名前を検証するために役立ちます。
      導入されたバージョン:
      1.6
      関連項目:
      定数フィールド値
    • SERIF

      public static final String SERIF
      論理フォント「Serif」の正規ファミリ名を表す文字列定数です。 Fontの構築で、コンパイル時に名前を検証するために役立ちます。
      導入されたバージョン:
      1.6
      関連項目:
      定数フィールド値
    • MONOSPACED

      public static final String MONOSPACED
      論理フォント「Monospaced」の正規ファミリ名を表す文字列定数です。 Fontの構築で、コンパイル時に名前を検証するために役立ちます。
      導入されたバージョン:
      1.6
      関連項目:
      定数フィールド値
    • PLAIN

      public static final int PLAIN
      プレーン・スタイル定数です。
      関連項目:
      定数フィールド値
    • BOLD

      public static final int BOLD
      太字スタイル定数です。 ほかのスタイル定数(PLAINを除く)と組み合わせて、混合スタイルを生成することができます。
      関連項目:
      定数フィールド値
    • ITALIC

      public static final int ITALIC
      イタリック・スタイル定数です。 ほかのスタイル定数(PLAINを除く)と組み合わせて、混合スタイルを生成することができます。
      関連項目:
      定数フィールド値
    • ROMAN_BASELINE

      public static final int ROMAN_BASELINE
      テキストを配置するときに、ローマ字の書体で通常使用されるベースラインです。
      関連項目:
      定数フィールド値
    • CENTER_BASELINE

      public static final int CENTER_BASELINE
      テキストを配置するときに、中国語、日本語、および韓国語などの表意文字の書体で使用されるベースラインです。
      関連項目:
      定数フィールド値
    • HANGING_BASELINE

      public static final int HANGING_BASELINE
      テキストをレイアウトするときのDevanagariなどのスクリプトで使用されるベースライン。
      関連項目:
      定数フィールド値
    • TRUETYPE_FONT

      public static final int TRUETYPE_FONT
      TRUETYPE型のフォント・リソースを識別します。 TrueTypeフォント・リソースをcreateFont(int, java.io.InputStream)メソッドに指定する場合に使用します。 TrueType形式が拡張されてOpenType形式になり、それによってPostscriptアウトライン・フォントのサポートが追加されました。したがって、このタグは、このようなフォントとTrueTypeアウトライン・フォントの両方を参照します。
      導入されたバージョン:
      1.3
      関連項目:
      定数フィールド値
    • TYPE1_FONT

      public static final int TYPE1_FONT
      TYPE1型のフォント・リソースを識別します。 Type1フォント・リソースをcreateFont(int, java.io.InputStream)メソッドに指定する場合に使用します。
      導入されたバージョン:
      1.5
      関連項目:
      定数フィールド値
    • name

      protected String name
      コンストラクタに渡される、このFontの論理名。
      導入されたバージョン:
      1.0
      関連項目:
      getName()
    • style

      protected int style
      コンストラクタに渡される、このFontのスタイル。 PLAIN、BOLD、ITALIC、またはBOLD+ITALICのいずれかです。
      導入されたバージョン:
      1.0
      関連項目:
      getStyle()
    • size

      protected int size
      整数に丸められた、このFontのポイント・サイズ。
      導入されたバージョン:
      1.0
      関連項目:
      getSize()
    • pointSize

      protected float pointSize
      floatで表された、このFontのポイント・サイズ。
      関連項目:
      getSize(), getSize2D()
    • LAYOUT_LEFT_TO_RIGHT

      public static final int LAYOUT_LEFT_TO_RIGHT
      双方向分析でテキストが左から右に記述されていると判定されたことを示す、layoutGlyphVectorに対するフラグです。
      関連項目:
      定数フィールド値
    • LAYOUT_RIGHT_TO_LEFT

      public static final int LAYOUT_RIGHT_TO_LEFT
      双方向分析でテキストが右から左に記述されていると判定されたことを示す、layoutGlyphVectorに対するフラグです。
      関連項目:
      定数フィールド値
    • LAYOUT_NO_START_CONTEXT

      public static final int LAYOUT_NO_START_CONTEXT
      文字配列の、指定された開始位置以前のテキストを検査しないことを示す、layoutGlyphVectorに対するフラグです。
      関連項目:
      定数フィールド値
    • LAYOUT_NO_LIMIT_CONTEXT

      public static final int LAYOUT_NO_LIMIT_CONTEXT
      文字配列の、指定された終了位置以降のテキストを検査しないことを示す、layoutGlyphVectorに対するフラグです。
      関連項目:
      定数フィールド値
  • コンストラクタの詳細

    • Font

      public Font​(String name, int style, int size)
      指定された名前、スタイル、およびポイント・サイズから新しいFontを作成します。

      フォント名にはフォント・フェース名またはフォント・ファミリ名を指定できます。 フォント名をスタイルとともに使用して、適切なフォント・フェースを見つけます。 フォント・ファミリ名を指定した場合、style引数を使用して、ファミリからもっとも適切なフェースを選択します。 フォント・フェース名を指定した場合、フェースのスタイルとstyle引数をマージして、同じファミリからもっとも適合するフォントを見つけます。 たとえば、Font.ITALICでフェース名「Arial Bold」を指定すると、フォント・システムはArialファミリで、太字で斜体のフェースを探し、物理フォント・フェースArial Bold Italicにフォント・インスタンスを関連付けることもできます。 style引数は指定されたフェース・スタイルにマージされ、加算または減算されません。 つまり、太字フェースおよび太字スタイルを指定しても、フォントは2倍の太さにならず、また太字フェースとプレーン・スタイルを指定しても、フォントは細くなりません。

      要求されたスタイルのフェースが見つからない場合、フォント・システムは目的のスタイルを実現するためにアルゴリズム・スタイルを適用することがあります。 たとえば、ITALICが要求されていても、斜体フェースを使用できない場合、プレーン・フェースのグリフがアルゴリズムによって傾斜されます。

      フォント名の検索はUSロケールの大文字と小文字を区別しないルールが使用され、大文字と小文字が区別されません。

      nameパラメータが論理フォント以外のものを表す場合、つまり、物理フォント・フェースまたはファミリと解釈される場合で、実装によってこれを物理フォントまたは互換の代替フォントにマップできないときは、フォント・システムはFontインスタンスを「Dialog」にマップします。たとえば、getFamilyによって報告されるファミリは「Dialog」になります。

      パラメータ:
      name - フォント名。 これはフォント・フェース名またはフォント・ファミリ名を指定でき、このGraphicsEnvironmentに見つかった論理フォントまたは物理フォントを表す。 論理フォントのファミリ名は、Dialog、DialogInput、Monospaced、SerifまたはSansSerifです。 これらの名前にはすべて、定義済みの文字列定数が存在する。たとえば、DIALOG namenullの場合、getName()によって返される新しいFont論理フォント名は名前「Default」に設定される。
      style - Fontのスタイル定数。スタイル引数は、PLAIN、あるいはBOLDITALICをビット単位に結合した整数型ビット・マスク(ITALICまたはBOLD|ITALICなど)。 style引数が有効な整数型ビット・マスクでない場合、スタイルはPLAINに設定される。
      size - Fontのポイント・サイズ
      導入されたバージョン:
      1.0
      関連項目:
      GraphicsEnvironment.getAllFonts(), GraphicsEnvironment.getAvailableFontFamilyNames()
    • Font

      public Font​(Map<? extends AttributedCharacterIterator.Attribute,​?> attributes)
      指定された属性を使用して、新しいFontを作成します。 TextAttributeで定義されているキーだけが認識されます。 また、このコンストラクタではFONT属性は認識されません(getAvailableAttributes()を参照してください)。 有効な型の値を持つ属性だけが、新しいFontに影響を与えます。

      attributesnullの場合、新しいFontはデフォルト値で初期化されます。

      パラメータ:
      attributes - 新しいFontに割り当てる属性、またはnull
      関連項目:
      TextAttribute
    • Font

      protected Font​(Font font)
      指定されたfontから新しいFontを作成します。 このコンストラクタはサブクラスで使用します。
      パラメータ:
      font - このFontの生成元のフォント。
      例外:
      NullPointerException - fontがnullである場合
      導入されたバージョン:
      1.6
  • メソッドの詳細

    • textRequiresLayout

      public static boolean textRequiresLayout​(char[] chars, int start, int end)
      指定されたテキストの一部が、drawString(String,int,int)およびその他のテキスト・レンダリング・メソッドを使用するときに正しくレンダリングするために、実装がレイアウト処理を呼び出す必要がある複合スクリプトからのものである場合はtrueを返します。 テキストの測定は同様に、同じ余分な処理を必要とすることがあります。 startおよびendインデックスは、アプリケーションがテキストのサブセットのみを考慮できるように提供されます。 検査された最後のcharインデックスは"end-1"にあります。つまり、配列全体を調べるリクエストは
       Font.textRequiresLayout(chars, 0, chars.length);
       
      アプリケーションは、この情報がパフォーマンスに影響を与えるコードで役立つことがあります。

      このメソッドがfalseを返しても、trueを返すhasLayoutAttributes()Fontと使用される時に起動されるレイアウト処理はまだ起動されるかもしれません。そのようなフォント属性を説明する回答を得るには、特定のフォントについてメソッドを調べる必要があります。

      パラメータ:
      chars - テキスト。
      start - 調べる最初のcharのインデックス。
      end - 終了インデックス、排他的。
      戻り値:
      指定されたテキストに特別なレイアウトが必要な場合はtrue
      例外:
      NullPointerException - charsがnullの場合。
      ArrayIndexOutOfBoundsException - startが負の場合、またはendchars配列の長さより大きい場合。
      導入されたバージョン:
      9
    • getFont

      public static Font getFont​(Map<? extends AttributedCharacterIterator.Attribute,​?> attributes)
      属性に適したFontを返します。 attributesに有効なFontを値として持つFONT属性が含まれている場合、残りの属性とマージされます。 詳細は、TextAttribute.FONTを参照してください。
      パラメータ:
      attributes - 新しいFontに割り当てる属性
      戻り値:
      指定された属性で生成された新しいFont
      例外:
      NullPointerException - attributesがnullの場合。
      導入されたバージョン:
      1.2
      関連項目:
      TextAttribute
    • createFonts

      public static Font[] createFonts​(InputStream fontStream) throws FontFormatException, IOException
      指定されたストリームからデコードされたFontの新しい配列を返します。 返されるFont[]には少なくとも1つの要素があります。

      createFont(int, InputStream)メソッドにおけるこのバリエーションの明確な目的は、TrueType/OpenTypeフォント・コレクションを表すフォント・ソースをサポートし、そのコレクション内の個々のフォントをすべて返すことができるようにすることです。 したがって、データソースに少なくとも1つのTrueType/OpenTypeフォントが含まれていない場合、このメソッドはFontFormatExceptionをスローします。 コレクション内のいずれかのフォントに必要なフォント表が含まれていない場合、同じ例外がスローされます。

      条件"少なくても一つ"は、ストリームが単一のOpenType/TrueTypeフォントを表すことを可能にします。 つまり、それはコレクションである必要はありません。 返される配列の各Font要素は、ポイント・サイズ1とスタイルPLAINで作成されます。 次に、このベース・フォントをこのクラスのderiveFontメソッドで使用すると、さまざまなサイズ、スタイル、変形体、およびフォント機能を持つ新しいFontオブジェクトを派生させることができます。

      このメソッドはInputStreamを閉じません。

      FontをFontコンストラクタで使用できるようにするには、GraphicsEnvironmentregisterFont(Font)を呼び出すことで登録する必要があります。

      パラメータ:
      fontStream - フォントまたはフォント・コレクションの入力データを表すInputStreamオブジェクト。
      戻り値:
      新しいFont[]
      例外:
      FontFormatException - fontStreamデータにコレクションのいずれかの要素に必要なフォント表が含まれていない場合、またはフォントがまったく含まれていない場合。
      IOException - fontStreamを完全に読込みできない場合。
      導入されたバージョン:
      9
      関連項目:
      GraphicsEnvironment.registerFont(Font)
    • createFonts

      public static Font[] createFonts​(File fontFile) throws FontFormatException, IOException
      指定されたファイルからデコードされたFontの新しい配列を返します。 返されるFont[]には少なくとも1つの要素があります。

      createFont(int, File)メソッドにおけるこのバリエーションの明確な目的は、TrueType/OpenTypeフォント・コレクションを表すフォント・ソースをサポートし、そのコレクション内の個々のフォントをすべて返すことができるようにすることです。 したがって、データソースに少なくとも1つのTrueType/OpenTypeフォントが含まれていない場合、このメソッドはFontFormatExceptionをスローします。 コレクション内のいずれかのフォントに必要なフォント表が含まれていない場合、同じ例外がスローされます。

      条件"少なくても一つ"は、ストリームが単一のOpenType/TrueTypeフォントを表すことを可能にします。 つまり、それはコレクションである必要はありません。 返される配列の各Font要素は、ポイント・サイズ1とスタイルPLAINで作成されます。 次に、このベース・フォントをこのクラスのderiveFontメソッドで使用すると、さまざまなサイズ、スタイル、変形体、およびフォント機能を持つ新しいFontオブジェクトを派生させることができます。

      FontをFontコンストラクタで使用できるようにするには、GraphicsEnvironmentregisterFont(Font)を呼び出すことで登録する必要があります。

      パラメータ:
      fontFile - フォントまたはフォント・コレクションの入力データを含むFileオブジェクト。
      戻り値:
      新しいFont[]
      例外:
      FontFormatException - Fileにコレクションのいずれかの要素に必要なフォント表が含まれていない場合、またはフォントがまったく含まれていない場合。
      IOException - fontFileを読込みできない場合。
      導入されたバージョン:
      9
      関連項目:
      GraphicsEnvironment.registerFont(Font)
    • createFont

      public static Font createFont​(int fontFormat, InputStream fontStream) throws FontFormatException, IOException
      指定されたフォント・タイプと入力データを使用して、新しいFontを返します。 新しいFontは、1のポイント・サイズとスタイルPLAINで作成されます。 次に、このベース・フォントをこのクラスのderiveFontメソッドで使用すると、さまざまなサイズ、スタイル、変形体、およびフォント機能を持つ新しいFontオブジェクトを派生させることができます。 このメソッドはInputStreamを閉じません。

      FontをFontコンストラクタで使用できるようにするには、返されたFontGraphicsEnvironmentregisterFont(Font)を呼び出すことで登録する必要があります。

      パラメータ:
      fontFormat - Fontのタイプ。TrueTypeリソースを指定する場合はTRUETYPE_FONT、Type 1リソースを指定する場合はTYPE1_FONT
      fontStream - フォントの入力データを表すInputStreamオブジェクト。
      戻り値:
      指定されたフォント・タイプで作成された新しいFont
      例外:
      IllegalArgumentException - fontFormatTRUETYPE_FONT または TYPE1_FONTでない場合。
      FontFormatException - fontStreamデータが、指定された形式に必要なフォント表を持っていない場合。
      IOException - fontStreamを完全に読込みできない場合。
      導入されたバージョン:
      1.3
      関連項目:
      GraphicsEnvironment.registerFont(Font)
    • createFont

      public static Font createFont​(int fontFormat, File fontFile) throws FontFormatException, IOException
      指定されたフォント・タイプと指定されたフォント・ファイルを使用して、新しいFontを返します。 新しいFontは、1のポイント・サイズとスタイルPLAINで作成されます。 次に、このベース・フォントをこのクラスのderiveFontメソッドで使用すると、さまざまなサイズ、スタイル、変形体、およびフォント機能を持つ新しいFontオブジェクトを派生させることができます。
      パラメータ:
      fontFormat - Fontのタイプ。TrueTypeリソースを指定する場合はTRUETYPE_FONT、Type 1リソースを指定する場合はTYPE1_FONT 返されたフォントまたはその派生フォントが参照されるかぎり、実装ではfontFileにアクセスし続け、フォント・データを取得できる。 そのため、ファイルが変更された場合の結果は不定で、アクセスできなくなる。

      FontをFontコンストラクタで使用できるようにするには、返されたFontGraphicsEnvironmentregisterFont(Font)を呼び出すことで登録する必要があります。

      fontFile - フォントの入力データを表すFileオブジェクト。
      戻り値:
      指定されたフォント・タイプで作成された新しいFont
      例外:
      IllegalArgumentException - fontFormatTRUETYPE_FONT または TYPE1_FONTでない場合。
      NullPointerException - fontFileがnullの場合。
      IOException - fontFileを読込みできない場合。
      FontFormatException - fontFileが、指定された形式に必要なフォント表を持っていない場合。
      SecurityException - 実行するコードに、ファイルから読み取るアクセス権がない場合。
      導入されたバージョン:
      1.5
      関連項目:
      GraphicsEnvironment.registerFont(Font)
    • getTransform

      public AffineTransform getTransform()
      このFontに関連付けられた変形体のコピーを返します。 この変形体は、フォントの構築に使用されるものとは限りません。 フォントにアルゴリズムによる上付き処理や幅の調整が行われる場合、これは返されるAffineTransformに組み込まれます。

      通常、フォントは変形されません。 一般に、クライアントでは、まずisTransformed()を呼び出し、isTransformedからtrueが返された場合のみこのメソッドを呼び出すようにしてください。

      戻り値:
      このFontオブジェクトの変形体属性を表すAffineTransformオブジェクト。
    • getFamily

      public String getFamily()
      このFontのファミリ名を返します。

      フォントのファミリ名はフォント固有です。 Helvetica ItalicとHelvetica Boldの2つのフォントにはHelveticaという同じファミリ名が付いていますが、これらのフォント・フェース名はHelvetica BoldHelvetica Italicです。 使用可能なファミリ名のリストは、GraphicsEnvironment.getAvailableFontFamilyNames()メソッドを使用して取得できる可能性があります。

      フォントの論理名を取得するにはgetNameを使用します。 フォントのフォント・フェース名を取得するにはgetFontNameを使用します。

      戻り値:
      このFontのファミリ名を表すString
      導入されたバージョン:
      1.1
      関連項目:
      getName(), getFontName()
    • getFamily

      public String getFamily​(Locale l)
      指定されたロケール向けにローカライズされた、このFontのファミリ名を返します。

      フォントのファミリ名はフォント固有です。 Helvetica ItalicとHelvetica Boldの2つのフォントにはHelveticaという同じファミリ名が付いていますが、これらのフォント・フェース名はHelvetica BoldHelvetica Italicです。 使用可能なファミリ名のリストは、GraphicsEnvironment.getAvailableFontFamilyNames()メソッドを使用して取得できる可能性があります。

      フォントのフォント・フェース名を取得するにはgetFontNameを使用します。

      パラメータ:
      l - ファミリ名を取得するロケール
      戻り値:
      指定されたロケール向けにローカライズされた、フォントのファミリ名を表すString
      導入されたバージョン:
      1.2
      関連項目:
      getFontName(), Locale
    • getPSName

      public String getPSName()
      このFontのポストスクリプト名を返します。 フォントのファミリ名を取得するにはgetFamilyを使用します。 フォントのフォント・フェース名を取得するにはgetFontNameを使用します。
      戻り値:
      このFontのポストスクリプト名を表すString
      導入されたバージョン:
      1.2
    • getName

      public String getName()
      このFontの論理名を返します。 フォントのファミリ名を取得するにはgetFamilyを使用します。 フォントのフォント・フェース名を取得するにはgetFontNameを使用します。
      戻り値:
      このFontの論理名を表すString
      導入されたバージョン:
      1.0
      関連項目:
      getFamily(), getFontName()
    • getFontName

      public String getFontName()
      このFontのフォント・フェース名を返します。 たとえば、フォント・フェース名としてHelvetica Boldが返されます。 フォントのファミリ名を取得するにはgetFamilyを使用します。 フォントの論理名を取得するにはgetNameを使用します。
      戻り値:
      このFontのフォント・フェース名を表すString
      導入されたバージョン:
      1.2
      関連項目:
      getFamily(), getName()
    • getFontName

      public String getFontName​(Locale l)
      指定されたロケール向けにローカライズされた、Fontのフォント・フェース名を返します。 たとえば、フォント・フェース名としてHelvetica Fettが返されます。 フォントのファミリ名を取得するにはgetFamilyを使用します。
      パラメータ:
      l - フォント・フェース名を取得するロケール
      戻り値:
      指定されたロケール向けにローカライズされた、フォント・フェース名を表すString
      関連項目:
      getFamily(), Locale
    • getStyle

      public int getStyle()
      このFontのスタイルを返します。 PLAIN、BOLD、ITALIC、またはBOLD+ITALICのいずれかです。
      戻り値:
      このFontのスタイル
      導入されたバージョン:
      1.0
      関連項目:
      isPlain(), isBold(), isItalic()
    • getSize

      public int getSize()
      整数に丸められた、このFontのポイント・サイズを返します。 ほとんどのユーザーは、ポイント・サイズでのフォントのグリフ・サイズの指定に慣れています。 このポイント・サイズは、シングル・スペースのテキスト・ドキュメント上の、ある行のベースラインから次の行のベースラインまでの距離を定義します。 ポイント・サイズは文字体裁のポイントをベースにしており、およそ1/72インチです。

      Java (TM) 2D APIの規約では、1ポイントがユーザー座標の1単位に相当します。 ユーザー空間座標からデバイス空間座標への変換に標準化された変換を使用する場合、72ユーザー空間単位がデバイス空間の1インチと等しくなります。 この場合、1ポイントは1/72インチです。

      戻り値:
      1/72インチ単位で表した、このFontのポイント・サイズ。
      導入されたバージョン:
      1.0
      関連項目:
      getSize2D(), GraphicsConfiguration.getDefaultTransform(), GraphicsConfiguration.getNormalizingTransform()
    • getSize2D

      public float getSize2D()
      float値で表された、このFontのポイント・サイズを返します。
      戻り値:
      float値で表された、このFontのポイント・サイズ。
      導入されたバージョン:
      1.2
      関連項目:
      getSize()
    • isPlain

      public boolean isPlain()
      このFontオブジェクトのスタイルがPLAINであるかどうかを示します。
      戻り値:
      このFontのスタイルがPLAINの場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.0
      関連項目:
      getStyle()
    • isBold

      public boolean isBold()
      このFontオブジェクトのスタイルがBOLDであるかどうかを示します。
      戻り値:
      このFontオブジェクトのスタイルがBOLDの場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.0
      関連項目:
      getStyle()
    • isItalic

      public boolean isItalic()
      このFontオブジェクトのスタイルがITALICであるかどうかを示します。
      戻り値:
      このFontオブジェクトのスタイルがITALICの場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.0
      関連項目:
      getStyle()
    • isTransformed

      public boolean isTransformed()
      このFontオブジェクトに、Size属性以外にサイズに影響を与える変形体が含まれているかどうかを示します。
      戻り値:
      このFontオブジェクトが非恒等AffineTransform属性を持つ場合はtrue、それ以外の場合はfalse
      導入されたバージョン:
      1.4
      関連項目:
      getTransform()
    • hasLayoutAttributes

      public boolean hasLayoutAttributes()
      このFontに追加のレイアウト処理を必要とする属性が含まれている場合は、trueを返します。
      戻り値:
      フォントがレイアウト属性を持っている場合はtrue
      導入されたバージョン:
      1.6
    • getFont

      public static Font getFont​(String nm)
      システムのプロパティ・リストからFontオブジェクトを返します。nmは取得するシステム・プロパティの名前として扱われます。 このプロパティのString値は、Font.decode(String)の仕様に従って、Fontオブジェクトとして解釈されます。指定されたプロパティが見つからない場合、または実行するコードにプロパティを読み取るアクセス権がない場合は、nullを返します。
      パラメータ:
      nm - プロパティ名
      戻り値:
      プロパティ名が記述するFontオブジェクト、または該当するプロパティが存在しない場合はnull。
      例外:
      NullPointerException - nmがnullである場合。
      導入されたバージョン:
      1.2
      関連項目:
      decode(String)
    • decode

      public static Font decode​(String str)
      str引数で説明されているFontを返します。 必要なフォントをメソッドが確実に返すためには、strパラメータの書式を次のいずれかに設定します
      • fontname-style-pointsize
      • fontname-pointsize
      • fontname-style
      • fontname
      • fontname style pointsize
      • fontname pointsize
      • fontname style
      • fontname
      この場合のstyle"PLAIN""BOLD""BOLDITALIC""ITALIC"のいずれかです(大文字または小文字のどちらでも指定可能)。pointsizeは正の10進数の整数で表したポイント・サイズです。 太字でポイント・サイズ18のArialフォントが必要な場合、Arial-BOLD-18を指定してこのメソッドを呼び出します。 これはFontコンストラクタnew Font("Arial", Font.BOLD, 18);の呼出しと等しく、値はそのコンストラクタによって指定されたものとして解釈されます。

      あとに続く有効なフィールドは常にポイント・サイズとして解釈されます。 そのため、フォント名のみの形式では、うしろに10進値が付いたフォント名を使用しないでください。

      スタイル名フィールドが有効なスタイル文字列でない場合、それはフォント名の一部として解釈され、デフォルトのスタイルが使われます。

      ' 'または'-'のどちらか1つを使用して、入力のフィールドを区切ります。 識別されるセパレータは有効なポイント・サイズまたは有効なスタイル名を残りの文字列から区切る文字列の末尾にもっとも近いものです。 null (空)のポイント・サイズおよびスタイル・フィールドはそのフィールドにデフォルト値を持つ有効なフィールドとして扱われます。

      フォント名には区切り文字' 'または'-'が含まれることがあります。 strが3つの成分から構成されていない、たとえばstyleまたはpointsizeフィールドがstrに存在せず、fontnameにも区切り文字として特定される文字が含まれる場合、fontnameの一部として意図されたこれらの文字がセパレータとして解釈され、フォント名が正しく認識されないことがあります。

      デフォルトのサイズは12、デフォルトのスタイルはPLAINになります。 strで有効なサイズを指定しない場合、返されるFontのサイズは12になります。 strで有効なスタイルを指定しない場合、返されるフォントのスタイルはPLAINになります。 str引数に有効なフォント名を指定しない場合、ファミリ名が「Dialog」のフォントが返されます。 システム上で使用可能なフォント・ファミリ名を判定するには、GraphicsEnvironment.getAvailableFontFamilyNames()メソッドを使用します。 strnullの場合、ファミリ名が「Dialog」、サイズが12、スタイルがPLAINの新しいFontが返されます。

      パラメータ:
      str - フォント名、またはnull
      戻り値:
      strで指定されるFontオブジェクト。strnullの場合は新しいデフォルトFont
      導入されたバージョン:
      1.1
      関連項目:
      getFamily()
    • getFont

      public static Font getFont​(String nm, Font font)
      システムのプロパティ・リストから指定されたFontを取得します。 SystemgetPropertyメソッドの場合と同じように、最初の引数は取得するシステム・プロパティの名前として扱われます。 このプロパティのString値は、Fontオブジェクトとして解釈されます。

      プロパティ値はFont.decode(String)によって受け入れられる形式のいずれかです。指定されたプロパティが見つからない場合、または実行するコードにプロパティを読み取るアクセス権がない場合は、font引数が返されます。

      パラメータ:
      nm - プロパティ名。大文字と小文字は区別されない
      font -プロパティnmが定義されていない場合に返されるデフォルトのFont
      戻り値:
      プロパティのFont値。
      例外:
      NullPointerException - nmがnullである場合。
      関連項目:
      decode(String)
    • hashCode

      public int hashCode()
      このFontのハッシュ・コードを返します。
      オーバーライド:
      hashCode 、クラス:  Object
      戻り値:
      このFontのハッシュ・コード値。
      導入されたバージョン:
      1.0
      関連項目:
      Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)
    • equals

      public boolean equals​(Object obj)
      このFontオブジェクトを指定されたObjectと比較します。
      オーバーライド:
      equals 、クラス:  Object
      パラメータ:
      obj - 比較するObject
      戻り値:
      オブジェクトが同じ場合、または引数がこのオブジェクトと同じフォントを指定しているFontオブジェクトである場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.0
      関連項目:
      Object.hashCode()HashMap
    • toString

      public String toString()
      このFontオブジェクトをString表現に変換します。
      オーバーライド:
      toString 、クラス:  Object
      戻り値:
      このFontオブジェクトのString表現。
      導入されたバージョン:
      1.0
    • getNumGlyphs

      public int getNumGlyphs()
      このFont内のグリフの数を返します。 このFontのグリフ・コードの範囲は、0からgetNumGlyphs() - 1です。
      戻り値:
      このFontのグリフ数。
      導入されたバージョン:
      1.2
    • getMissingGlyphCode

      public int getMissingGlyphCode()
      このFontに、指定されたUnicodeコード・ポイントのグリフがないときに使用されるglyphCodeを返します。
      戻り値:
      このFontのglyphCode。
      導入されたバージョン:
      1.2
    • getBaselineFor

      public byte getBaselineFor​(char c)
      この文字の表示に適切なベースラインを返します。

      大きなフォントはさまざまな書記法をサポートでき、各書記法は別々のベースラインを使用できます。 文字引数は、使用する書記法を決めます。 クライアントは、すべての文字が同じベースラインを使用すると仮定することはできません。

      パラメータ:
      c - 書記法を識別するための文字
      戻り値:
      指定された文字に対して適切なベースライン
      導入されたバージョン:
      1.2
      関連項目:
      LineMetrics.getBaselineOffsets(), ROMAN_BASELINE, CENTER_BASELINE, HANGING_BASELINE
    • getAttributes

      public Map<TextAttribute,​?> getAttributes()
      このFontで使用可能なフォント属性のマップを返します。 属性には、合字やグリフの代用などが含まれます。
      戻り値:
      このFontの属性マップ。
    • getAvailableAttributes

      public AttributedCharacterIterator.Attribute[] getAvailableAttributes()
      このFontでサポートされているすべての属性のキーを返します。 それらの属性は、ほかのフォントを派生させるために使用できます。
      戻り値:
      このFontがサポートするすべての属性のキーが格納されている配列。
      導入されたバージョン:
      1.2
    • deriveFont

      public Font deriveFont​(int style, float size)
      このFontオブジェクトを複製し、新しいスタイルとサイズを適用することによって、新しいFontオブジェクトを作成します。
      パラメータ:
      style - 新しい次のものに対するスタイル: Font
      size - 新しいFontのサイズ
      戻り値:
      新しいFontオブジェクト。
      導入されたバージョン:
      1.2
    • deriveFont

      public Font deriveFont​(int style, AffineTransform trans)
      このFontオブジェクトを複製し、新しいスタイルと変形体を適用することによって、新しいFontオブジェクトを作成します。
      パラメータ:
      style - 新しい次のものに対するスタイル: Font
      trans - 新しいFontに関連付けられたAffineTransform
      戻り値:
      新しいFontオブジェクト。
      例外:
      IllegalArgumentException - transnullの場合
      導入されたバージョン:
      1.2
    • deriveFont

      public Font deriveFont​(float size)
      現在のFontオブジェクトを複製し、それに新しいサイズを適用することによって、新しいFontオブジェクトを作成します。
      パラメータ:
      size - 新しいFontのサイズ。
      戻り値:
      新しいFontオブジェクト。
      導入されたバージョン:
      1.2
    • deriveFont

      public Font deriveFont​(AffineTransform trans)
      現在のFontオブジェクトを複製し、それに新しい変形体を適用することによって、新しいFontオブジェクトを作成します。
      パラメータ:
      trans - 新しいFontに関連付けられたAffineTransform
      戻り値:
      新しいFontオブジェクト。
      例外:
      IllegalArgumentException - transnullの場合
      導入されたバージョン:
      1.2
    • deriveFont

      public Font deriveFont​(int style)
      現在のFontオブジェクトを複製し、それに新しいスタイルを適用することによって、新しいFontオブジェクトを作成します。
      パラメータ:
      style - 新しい次のものに対するスタイル: Font
      戻り値:
      新しいFontオブジェクト。
      導入されたバージョン:
      1.2
    • deriveFont

      public Font deriveFont​(Map<? extends AttributedCharacterIterator.Attribute,​?> attributes)
      現在のFontオブジェクトを複製し、それに新しいフォント属性のセットを適用することによって、新しいFontオブジェクトを作成します。
      パラメータ:
      attributes - 新しいFontに使用可能な属性のマップ
      戻り値:
      新しいFontオブジェクト。
      導入されたバージョン:
      1.2
    • canDisplay

      public boolean canDisplay​(char c)
      このFontに、指定された文字のグリフが含まれているかどうかをチェックします。

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

      パラメータ:
      c - グリフが必要な文字
      戻り値:
      このFontがこの文字のグリフを持つ場合はtrue、そうでない場合はfalse
      導入されたバージョン:
      1.2
    • canDisplay

      public boolean canDisplay​(int codePoint)
      このFontに、指定された文字のグリフが含まれているかどうかをチェックします。
      パラメータ:
      codePoint - グリフが必要な文字(Unicodeコード・ポイント)。
      戻り値:
      このFontがこの文字のグリフを持つ場合はtrue、そうでない場合はfalse
      例外:
      IllegalArgumentException - コード・ポイントが有効なUnicodeコード・ポイントでない場合。
      導入されたバージョン:
      1.5
      関連項目:
      Character.isValidCodePoint(int)
    • canDisplayUpTo

      public int canDisplayUpTo​(String str)
      このFontが指定されたStringを表示できるかどうかを示します。 Unicodeエンコーディング文字列の場合、特定のフォントで文字列を表示できるかどうかを確認することが重要になります。 このメソッドは、String str内のオフセットを返します。このオフセットは、欠如しているグリフ・コードを使用しないかぎりこのFontでは表示できない最初の文字を示します。 このFontですべての文字を表示できる場合は、-1が返されます。
      パラメータ:
      str - Stringオブジェクト
      戻り値:
      このFontが表示できないstr内の最初の文字を指すstrへのオフセット、またはこのFontstr内のすべての文字を表示できる場合は-1
      導入されたバージョン:
      1.2
    • canDisplayUpTo

      public int canDisplayUpTo​(char[] text, int start, int limit)
      このFontが、startで始まり、limitで終わる指定されたtext内の文字を表示できるかどうかを示します。 このメソッドは簡易オーバーロードです。
      パラメータ:
      text - char値の指定された配列
      start - 指定されたchar値の配列内の指定された開始オフセット(char数)
      limit - 指定されたchar値の配列内の指定された終了オフセット(char数)
      戻り値:
      このFontが表示できないtext内の最初の文字を指すtextへのオフセット、またはこのFonttext内のすべての文字を表示できる場合は-1
      導入されたバージョン:
      1.2
    • canDisplayUpTo

      public int canDisplayUpTo​(CharacterIterator iter, int start, int limit)
      このFontが、startで始まり、limitで終わるiterによって指定されたテキストを表示できるかどうかを示します。
      パラメータ:
      iter - CharacterIteratorオブジェクト
      start - 指定されたCharacterIterator内の指定された開始オフセット。
      limit - 指定されたCharacterIterator内の指定された終了オフセット。
      戻り値:
      このFontが表示できないiter内の最初の文字を指すiterへのオフセット、またはこのFontiter内のすべての文字を表示できる場合は-1
      導入されたバージョン:
      1.2
    • getItalicAngle

      public float getItalicAngle()
      このFontのイタリックの角度を返します。 イタリックの角度とはこのFontのポスチャ(傾き)にもっとも一致するキャレットの逆傾斜です。
      戻り値:
      このFontのITALICスタイルの角度。
      関連項目:
      TextAttribute.POSTURE
    • hasUniformLineMetrics

      public boolean hasUniformLineMetrics()
      このFontに均一のライン・メトリックスが含まれているかどうかをチェックします。 論理Fontは、複合フォントの場合があります。複合フォントは、複数のコード範囲を網羅するために複数の物理フォントで構成されています。 それらの各フォントは、別々のLineMetricsを持つ場合があります。 論理Fontが単一のフォントの場合、メトリックスは均一です。
      戻り値:
      このFontが均一のライン・メトリックスを持つ場合はtrue、そうでない場合はfalse
    • getLineMetrics

      public LineMetrics getLineMetrics​(String str, FontRenderContext frc)
      指定されたStringFontRenderContextで作成されたLineMetricsオブジェクトを返します。
      パラメータ:
      str - 指定されたString
      frc - 指定されたFontRenderContext
      戻り値:
      指定されたStringFontRenderContextで作成されたLineMetricsオブジェクト。
    • getLineMetrics

      public LineMetrics getLineMetrics​(String str, int beginIndex, int limit, FontRenderContext frc)
      指定された引数で作成されたLineMetricsオブジェクトを返します。
      パラメータ:
      str - 指定されたString
      beginIndex - 次の初期オフセット: str
      limit - 次の終了オフセット: str
      frc - 指定されたFontRenderContext
      戻り値:
      指定された引数で作成されたLineMetricsオブジェクト。
    • getLineMetrics

      public LineMetrics getLineMetrics​(char[] chars, int beginIndex, int limit, FontRenderContext frc)
      指定された引数で作成されたLineMetricsオブジェクトを返します。
      パラメータ:
      chars - 文字の配列
      beginIndex - 次の初期オフセット: chars
      limit - 次の終了オフセット: chars
      frc - 指定されたFontRenderContext
      戻り値:
      指定された引数で作成されたLineMetricsオブジェクト。
    • getLineMetrics

      public LineMetrics getLineMetrics​(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
      指定された引数で作成されたLineMetricsオブジェクトを返します。
      パラメータ:
      ci - 指定されたCharacterIterator
      beginIndex - 次の初期オフセット: ci
      limit - 次の終了オフセット: ci
      frc - 指定されたFontRenderContext
      戻り値:
      指定された引数で作成されたLineMetricsオブジェクト。
    • getStringBounds

      public Rectangle2D getStringBounds​(String str, FontRenderContext frc)
      指定されたFontRenderContext内の指定されたStringの論理境界を返します。 レディングを含む起点、アセント、有効幅、および高さが論理バウンドの内容です。 論理バウンドは常にすべてのテキストを含むとは限りません。 たとえば言語やフォントによっては、アクセントのマークがアセントの上、またはディセントの下に来ることがあります。 すべてのテキストを囲む、目で確認できるバウンディング・ボックスを取得するには、TextLayoutgetBoundsメソッドを使用します。

      注: 返された境界は、ベースラインを基準にした座標で表されています(class notesを参照してください)。

      パラメータ:
      str - 指定されたString
      frc - 指定されたFontRenderContext
      戻り値:
      指定されたFontRenderContextで、指定されたStringのバウンディング・ボックスを表すRectangle2D
      導入されたバージョン:
      1.2
      関連項目:
      FontRenderContext, createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
    • getStringBounds

      public Rectangle2D getStringBounds​(String str, int beginIndex, int limit, FontRenderContext frc)
      指定されたFontRenderContext内の指定されたStringの論理境界を返します。 レディングを含む起点、アセント、有効幅、および高さが論理バウンドの内容です。 論理バウンドは常にすべてのテキストを含むとは限りません。 たとえば言語やフォントによっては、アクセントのマークがアセントの上、またはディセントの下に来ることがあります。 すべてのテキストを囲む、目で確認できるバウンディング・ボックスを取得するには、TextLayoutgetBoundsメソッドを使用します。

      注: 返された境界は、ベースラインを基準にした座標で表されています(class notesを参照してください)。

      パラメータ:
      str - 指定されたString
      beginIndex - 次の初期オフセット: str
      limit - 次の終了オフセット: str
      frc - 指定されたFontRenderContext
      戻り値:
      指定されたFontRenderContextで、指定されたStringのバウンディング・ボックスを表すRectangle2D
      例外:
      IndexOutOfBoundsException - beginIndexが0より小さいか、limitstrの長さより大きいか、またはbeginIndexlimitより大きい場合。
      導入されたバージョン:
      1.2
      関連項目:
      FontRenderContext, createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
    • getStringBounds

      public Rectangle2D getStringBounds​(char[] chars, int beginIndex, int limit, FontRenderContext frc)
      指定されたFontRenderContext内の指定された文字の配列の論理境界を返します。 レディングを含む起点、アセント、有効幅、および高さが論理バウンドの内容です。 論理バウンドは常にすべてのテキストを含むとは限りません。 たとえば言語やフォントによっては、アクセントのマークがアセントの上、またはディセントの下に来ることがあります。 すべてのテキストを囲む、目で確認できるバウンディング・ボックスを取得するには、TextLayoutgetBoundsメソッドを使用します。

      注: 返された境界は、ベースラインを基準にした座標で表されています(class notesを参照してください)。

      パラメータ:
      chars - 文字の配列
      beginIndex - 文字配列の開始オフセット
      limit - 文字配列の終了オフセット
      frc - 指定されたFontRenderContext
      戻り値:
      指定されたFontRenderContextで、指定された文字配列のバウンディング・ボックスを表すRectangle2D
      例外:
      IndexOutOfBoundsException - beginIndexが0より小さいか、limitcharsの長さより大きいか、またはbeginIndexlimitより大きい場合。
      導入されたバージョン:
      1.2
      関連項目:
      FontRenderContext, createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
    • getStringBounds

      public Rectangle2D getStringBounds​(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
      指定されたFontRenderContext内の指定されたCharacterIteratorでインデックスが付けられた文字の論理境界を返します。 レディングを含む起点、アセント、有効幅、および高さが論理バウンドの内容です。 論理バウンドは常にすべてのテキストを含むとは限りません。 たとえば言語やフォントによっては、アクセントのマークがアセントの上、またはディセントの下に来ることがあります。 すべてのテキストを囲む、目で確認できるバウンディング・ボックスを取得するには、TextLayoutgetBoundsメソッドを使用します。

      注: 返された境界は、ベースラインを基準にした座標で表されています(class notesを参照してください)。

      パラメータ:
      ci - 指定されたCharacterIterator
      beginIndex - 次の初期オフセット: ci
      limit - ciの終了オフセット
      frc - 指定されたFontRenderContext
      戻り値:
      指定されたFontRenderContextで、指定されたCharacterIterator内のインデックス付き文字のバウンディング・ボックスを表すRectangle2D
      例外:
      IndexOutOfBoundsException - beginIndexciの開始インデックスより小さい場合、limitciの終了インデックスより大きい場合、またはbeginIndexlimitより大きい場合
      導入されたバージョン:
      1.2
      関連項目:
      FontRenderContext, createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
    • getMaxCharBounds

      public Rectangle2D getMaxCharBounds​(FontRenderContext frc)
      指定されたFontRenderContextで定義された、最大の境界を持つ文字の境界を返します。

      注: 返された境界は、ベースラインを基準にした座標で表されています(class notesを参照してください)。

      パラメータ:
      frc - 指定されたFontRenderContext
      戻り値:
      最大の境界を持つ文字のバウンディング・ボックスであるRectangle2D
    • createGlyphVector

      public GlyphVector createGlyphVector​(FontRenderContext frc, String str)
      このFont内のUnicode cmapに基づいて文字からグリフに1対1にマッピングすることによって、GlyphVectorを作成します。 このメソッドではマッピング以外の処理を行いません。 このため、アラビア語、ヘブライ語、タイ語、およびインド語派の言語などの、再配置、整形、および合字の置換えが必要な言語ではこのメソッドを使用できません。
      パラメータ:
      frc - 指定されたFontRenderContext
      str - 指定されたString
      戻り値:
      指定されたStringと指定されたFontRenderContextで作成された新しいGlyphVector
    • createGlyphVector

      public GlyphVector createGlyphVector​(FontRenderContext frc, char[] chars)
      このFont内のUnicode cmapに基づいて文字からグリフに1対1にマッピングすることによって、GlyphVectorを作成します。 このメソッドではマッピング以外の処理を行いません。 このため、アラビア語、ヘブライ語、タイ語、およびインド語派の言語などの、再配置、整形、および合字の置換えが必要な言語ではこのメソッドを使用できません。
      パラメータ:
      frc - 指定されたFontRenderContext
      chars - 指定された文字配列
      戻り値:
      指定された文字配列と指定されたFontRenderContextで作成された新しいGlyphVector
    • createGlyphVector

      public GlyphVector createGlyphVector​(FontRenderContext frc, CharacterIterator ci)
      このFont内のUnicode cmapに基づいて指定された文字からグリフに1対1にマッピングすることによって、GlyphVectorを作成します。 このメソッドではマッピング以外の処理を行いません。 このため、アラビア語、ヘブライ語、タイ語、およびインド語派の言語などの、再配置、整形、および合字の置換えが必要な言語ではこのメソッドを使用できません。
      パラメータ:
      frc - 指定されたFontRenderContext
      ci - 指定されたCharacterIterator
      戻り値:
      指定されたCharacterIteratorと指定されたFontRenderContextで作成された新しいGlyphVector
    • createGlyphVector

      public GlyphVector createGlyphVector​(FontRenderContext frc, int[] glyphCodes)
      このFont内のUnicode cmapに基づいて文字からグリフに1対1にマッピングすることによって、GlyphVectorを作成します。 このメソッドではマッピング以外の処理を行いません。 このため、アラビア語、ヘブライ語、タイ語、およびインド語派の言語などの、再配置、整形、および合字の置換えが必要な言語ではこのメソッドを使用できません。
      パラメータ:
      frc - 指定されたFontRenderContext
      glyphCodes - 指定された整数配列
      戻り値:
      指定された整数配列と指定されたFontRenderContextで作成された新しいGlyphVector
    • layoutGlyphVector

      public GlyphVector layoutGlyphVector​(FontRenderContext frc, char[] text, int start, int limit, int flags)
      可能であればテキストの完全なレイアウトを実行して、新しいGlyphVectorオブジェクトを返します。 アラビア語やヒンディ語などの複雑な文字では、完全なレイアウトが必要です。 ほかの文字のサポートはフォントと実装で決定されます。

      レイアウトを決定するためにはBidiによる双方向分析が必要です。また同一方向に記述されるテキストだけがレイアウト可能です。 記述方向はフラグのパラメータで示されます。LAYOUT_RIGHT_TO_LEFTは右から左に記述されることを示し(アラビア語やヘブライ語など)、LAYOUT_LEFT_TO_RIGHTは左から右に記述されることを示します(英語)。

      さらに、アラビア語の整形などでは、最初の文字と最後の文字を正しく整形するためにコンテキストが必要です。 指定範囲外のバッファのデータが有効なデータでない場合があります。 フラグ・パラメータにLAYOUT_NO_START_CONTEXTおよびLAYOUT_NO_LIMIT_CONTEXTを追加すると、開始位置より前のデータ、終了位置より後のデータをコンテキスト検査の対象外にできます。

      これ以外のフラグ・パラメータの値はすべて予約されています。

      パラメータ:
      frc - 指定されたFontRenderContext
      text - レイアウトするテキスト
      start - GlyphVectorで使用するテキストの開始位置
      limit - GlyphVectorで使用するテキストの終了位置
      flags - 先に述べた制御フラグ
      戻り値:
      開始位置と終了位置の間のテキストを表す、新しいGlyphVector。テキストがもっとも見やすくなるようにグリフが選択、配置される
      例外:
      ArrayIndexOutOfBoundsException - 開始位置または終了位置が範囲外の場合
      導入されたバージョン:
      1.4
      関連項目:
      Bidi, LAYOUT_LEFT_TO_RIGHT, LAYOUT_RIGHT_TO_LEFT, LAYOUT_NO_START_CONTEXT, LAYOUT_NO_LIMIT_CONTEXT