public class Font extends Object implements Serializable
Font
クラスは、テキストを見えるように描画するために使用されるフォントを表します。 フォントは文字の連続をグリフの連続にマッピングするための情報、そしてそのグリフの連続を Graphics
や Component
オブジェクトに描画するための情報を提供します。
'g'
(ラテン小文字の G) が文字の例として挙げられます。
グリフは文字または一連の文字を描画するために使用される図形です。ラテン文字のような単純な書記法では、通常 1 つのグリフが 1 つの文字に対応します。ところがグリフと文字の対応は、一般的には 1 対 1 ではありません。 たとえば「á」 (アクセント記号付きのラテン小文字の A) のような文字は「a」と「´」に対応する 2 つのグリフで表されます。一方で 2 つの文字「fi」を、合字の 1 つのグリフで表すこともできます。アラビア語、南アジア、および東南アジアの言語のような複雑な書記法では、文字とグリフの関係はもっと複雑になり、コンテキストに応じてグリフの選択や並べ替えが必要になります。 フォントは選択された文字セットの描画で必要なグリフの集合、および文字の連続を対応するグリフの連続にマッピングするために必要なテーブルをカプセル化します。
物理フォントは実際のフォントライブラリであり、グリフデータおよび文字列とグリフ列のマッピングテーブルを含みます。TrueType や PostScript Type 1 などのフォントテクノロジが使用されます。Java が実装されるすべてのプラットフォームで TrueType フォントがサポートされている必要があります。ほかのフォントテクノロジのサポートは実装に依存します。物理フォントには Helvetica、Palatino、HonMincho などの任意のフォント名を使用します。通常、各物理フォントは、ラテン文字だけ、または日本語と基本的なヨーロッパ系の言語だけなどのように、特定の書記法だけをサポートします。有効な物理フォントのセットは設定によって異なります。 特定のフォントが必要な場合、アプリケーション側でフォントをバンドルし、createFont
メソッドでインスタンス化できます。
論理フォントは Java プラットフォームで定義される、Serif、SansSerif、Monospaced、Dialog、および DialogInput の 5 つのフォントファミリです。すべての Java 実行環境でこの 5 つがサポートされていなければいけません。 これらの論理フォントは実際のフォントライブラリではありません。代わりに、論理フォント名は Java 実行環境で物理フォントにマッピングされます。マッピングは実装、そして通常ロケールに依存し、提供される外見やメトリックスもそれに応じて異なります。通常はさまざまな文字をカバーするため、各論理フォント名が複数の物理フォントにマッピングされます。
Label
や TextField
などのピア AWT コンポーネントは、論理フォントだけを使用できます。
物理フォントと論理フォントの使用に関する、相対的な長所と短所については、『Internationalization FAQ』ドキュメントを参照してください。
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
がサポートされます。これにより、TextLayout
オブジェクトを明示的に構築する必要がなくなるため、下線付きテキストの描画などの操作が簡単になります。 TextAttribute
値の Map
を使用してフォントを構築するか派生させることによって、フォントに属性を設定できます。
一部の TextAttributes
の値は直列化不可能なので、そのような値を持つ Font
のインスタンスを直列化しても、これらの値は直列化されません。したがって、そのようなストリームから直列化復元されたフォントは、直列化不可能な属性を含んでいる元のフォントと等しいものにはなりません。通常、これらの属性は特殊な状況でのみ使用され、直列化されることはまれなので、これが問題になることはほとんどありません。
FOREGROUND
と BACKGROUND
は Paint
値を使用します。 サブクラス Color
は直列化可能ですが、GradientPaint
と TexturePaint
は直列化不可能です。CHAR_REPLACEMENT
は GraphicAttribute
値を使用します。 サブクラス ShapeGraphicAttribute
と ImageGraphicAttribute
は直列化不可能です。INPUT_METHOD_HIGHLIGHT
はInputMethodHighlight
値を使用します。これらの値は直列化不可能です。 InputMethodHighlight
を参照してください。Paint
と GraphicAttribute
のカスタムサブクラスを作成する場合は、これらを直列化可能にして、この問題を回避することができます。ユーザーがインプットメソッドのハイライトを使用する場合は、回避策として、現在のプラットフォームでそのハイライトのプラットフォーム固有属性に変換し、それをフォントに設定することができます。
Map
ベースのコンストラクタと deriveFont
API では FONT 属性は無視され、フォントで保持されません。FONT 属性が存在する場合は、static getFont(java.util.Map<? extends java.text.AttributedCharacterIterator.Attribute, ?>)
メソッドを使用してください。詳細は、TextAttribute.FONT
を参照してください。
いくつかの属性は、追加の描画オーバーヘッドを発生させ、レイアウトを呼び出す可能性があります。 Font
がそのような属性を持っている場合、
メソッドは true を返します。hasLayoutAttributes()
注:フォントを回転するとテキストのベースラインが回転することがあります。このまれな可能性に対処するために、フォント 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
テキストを配置するときに、ナーガリー文字などの書体に使用されるベースラインです。
|
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(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
指定された属性を使用して、新しい
Font を作成します。 |
|
Font(String name, int style, int size)
指定された名前、スタイル、およびポイントサイズから新しい
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(CharacterIterator iter, int start, int limit)
この
Font が、start で始まり、limit で終わる iter によって指定されたテキストを表示できるかどうかを示します。 |
int |
canDisplayUpTo(String str)
この
Font が指定された String を表示できるかどうかを示します。 |
static Font |
createFont(int fontFormat, File fontFile)
指定されたフォントタイプと指定されたフォントファイルを使用して、新しい
Font を返します。 |
static Font |
createFont(int fontFormat, InputStream fontStream)
指定されたフォントタイプと入力データを使用して、新しい
Font を返します。 |
GlyphVector |
createGlyphVector(FontRenderContext frc, char[] chars)
この
Font 内の Unicode cmap に基づいて文字からグリフに 1 対 1 にマッピングすることによって、GlyphVector を作成します。 |
GlyphVector |
createGlyphVector(FontRenderContext frc, CharacterIterator ci)
この
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 を作成します。 |
static Font |
decode(String str)
str 引数で説明されている Font を返します。 |
Font |
deriveFont(AffineTransform trans)
現在の
Font オブジェクトを複製し、それに新しい変形体を適用することによって、新しい Font オブジェクトを作成します。 |
Font |
deriveFont(float size)
現在の
Font オブジェクトを複製し、それに新しいサイズを適用することによって、新しい Font オブジェクトを作成します。 |
Font |
deriveFont(int style)
現在の
Font オブジェクトを複製し、それに新しいスタイルを適用することによって、新しい Font オブジェクトを作成します。 |
Font |
deriveFont(int style, AffineTransform trans)
この
Font オブジェクトを複製し、新しいスタイルと変形体を適用することによって、新しい Font オブジェクトを作成します。 |
Font |
deriveFont(int style, float size)
この
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(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
属性に適した
Font を返します。 |
static Font |
getFont(String nm)
システムのプロパティーリストから
Font オブジェクトを返します。 |
static Font |
getFont(String nm, Font font)
システムのプロパティーリストから指定された
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(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
指定された引数で作成された
LineMetrics オブジェクトを返します。 |
LineMetrics |
getLineMetrics(String str, FontRenderContext frc)
|
LineMetrics |
getLineMetrics(String str, int beginIndex, int limit, FontRenderContext frc)
指定された引数で作成された
LineMetrics オブジェクトを返します。 |
Rectangle2D |
getMaxCharBounds(FontRenderContext frc)
指定された
FontRenderContext で定義された、最大の境界を持つ文字の境界を返します。 |
int |
getMissingGlyphCode()
この
Font に、指定された Unicode コードポイントのグリフがないときに使用される glyphCode を返します。 |
String |
getName()
この
Font の論理名を返します。 |
int |
getNumGlyphs()
この
Font 内のグリフの数を返します。 |
java.awt.peer.FontPeer |
getPeer()
非推奨。
フォントの描画は現在はどのプラットフォームでも同じです。
|
String |
getPSName()
この
Font のポストスクリプト名を返します。 |
int |
getSize()
整数に丸められた、この
Font のポイントサイズを返します。 |
float |
getSize2D()
float 値で表された、この Font のポイントサイズを返します。 |
Rectangle2D |
getStringBounds(char[] chars, int beginIndex, int limit, FontRenderContext frc)
指定された
FontRenderContext 内の指定された文字の配列の論理境界を返します。 |
Rectangle2D |
getStringBounds(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
指定された
FontRenderContext 内の指定された CharacterIterator でインデックスが付けられた文字の論理境界を返します。 |
Rectangle2D |
getStringBounds(String str, FontRenderContext frc)
指定された
FontRenderContext 内の指定された String の論理境界を返します。 |
Rectangle2D |
getStringBounds(String str, int beginIndex, int limit, FontRenderContext frc)
指定された
FontRenderContext 内の指定された String の論理境界を返します。 |
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 オブジェクトを返します。 |
String |
toString()
この
Font オブジェクトを String 表現に変換します。 |
public static final String DIALOG
public static final String DIALOG_INPUT
public static final String SANS_SERIF
public static final String SERIF
public static final String MONOSPACED
public static final int PLAIN
public static final int BOLD
public static final int ITALIC
public static final int ROMAN_BASELINE
public static final int CENTER_BASELINE
public static final int HANGING_BASELINE
public static final int TRUETYPE_FONT
createFont(int, java.io.InputStream)
メソッドに指定する場合に使用します。 TrueType 形式が拡張されて OpenType 形式になり、それによって Postscript アウトラインフォントのサポートが追加されました。したがって、このタグは、このようなフォントと TrueType アウトラインフォントの両方を参照します。public static final int TYPE1_FONT
createFont(int, java.io.InputStream)
メソッドに指定する場合に使用します。protected int style
Font
のスタイル。PLAIN、BOLD、ITALIC、または BOLD+ITALIC のいずれかです。getStyle()
protected int size
Font
のポイントサイズ。getSize()
protected float pointSize
float
で表された、この Font
のポイントサイズ。getSize()
, getSize2D()
public static final int LAYOUT_LEFT_TO_RIGHT
public static final int LAYOUT_RIGHT_TO_LEFT
public static final int LAYOUT_NO_START_CONTEXT
public static final int LAYOUT_NO_LIMIT_CONTEXT
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
。 name
が null
の場合、getName()
によって返される新しい Font
の論理フォント名は名前「Default」に設定される。style
- Font
のスタイル定数。スタイル引数は、PLAIN
、あるいは BOLD
と ITALIC
をビット単位に結合した整数型ビットマスク (ITALIC
または BOLD|ITALIC
など)。 style 引数が有効な整数型ビットマスクでない場合、スタイルは PLAIN
に設定される。size
- Font
のポイントサイズGraphicsEnvironment.getAllFonts()
, GraphicsEnvironment.getAvailableFontFamilyNames()
public Font(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
Font
を作成します。 TextAttribute
で定義されているキーだけが認識されます。 また、このコンストラクタでは FONT 属性は認識されません (getAvailableAttributes()
を参照)。 有効な型の値を持つ属性だけが、新しい Font
に影響を与えます。
attributes
が null
の場合、新しい Font
はデフォルト値で初期化されます。
attributes
- 新しい Font
に割り当てる属性、または null
TextAttribute
protected Font(Font font)
font
から新しい Font
を作成します。このコンストラクタはサブクラスで使用します。font
- この Font
の生成元のフォント。NullPointerException
- font
が null の場合@Deprecated public java.awt.peer.FontPeer getPeer()
Font
のピアを取得します。Font
のピア。public static Font getFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
Font
を返します。 attributes
に、有効な Font
を値として持つ FONT
属性が含まれている場合、この属性はその他の属性とマージされます。詳細は、TextAttribute.FONT
を参照してください。attributes
- 新しい Font
に割り当てる属性Font
NullPointerException
- attributes
が null の場合。TextAttribute
public static Font createFont(int fontFormat, InputStream fontStream) throws FontFormatException, IOException
Font
を返します。新しい Font
は、1 のポイントサイズとスタイル PLAIN
で作成されます。次に、このベースフォントをこのクラスの deriveFont
メソッドで使用すると、さまざまなサイズ、スタイル、変形体、およびフォント機能を持つ新しい Font
オブジェクトを派生させることができます。 このメソッドは InputStream
を閉じません。
Font
を Font コンストラクタで使用できるようにするには、registerFont(Font)
を呼び出すことによって、返された Font
を GraphicsEnviroment
に登録する必要があります。
fontFormat
- Font
のタイプ。TrueType リソースを指定する場合は TRUETYPE_FONT
、Type 1 リソースを指定する場合は TYPE1_FONT
。fontStream
- フォントの入力データを表す InputStream
オブジェクト。Font
。IllegalArgumentException
- fontFormat
が TRUETYPE_FONT
または TYPE1_FONT
でない場合。FontFormatException
- fontStream
データが、指定された形式に必要なフォントテーブルを持っていない場合。IOException
- fontStream
を完全に読み込みできない場合。GraphicsEnvironment.registerFont(Font)
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 コンストラクタで使用できるようにするには、registerFont(Font)
を呼び出すことによって、返された Font
を GraphicsEnviroment
に登録する必要があります。
fontFile
- フォントの入力データを表す File
オブジェクト。Font
。IllegalArgumentException
- fontFormat
が TRUETYPE_FONT
または TYPE1_FONT
でない場合。NullPointerException
- fontFile
が null の場合。IOException
- fontFile
を読み込みできない場合。FontFormatException
- fontFile
が、指定された形式に必要なフォントテーブルを持っていない場合。SecurityException
- 実行するコードに、ファイルから読み取るアクセス権がない場合。GraphicsEnvironment.registerFont(Font)
public AffineTransform getTransform()
Font
に関連付けられた変形体のコピーを返します。この変形体は、フォントの構築に使用されるものとは限りません。 フォントにアルゴリズムによる上付き処理や幅の調整が行われる場合、これは返される AffineTransform
に組み込まれます。
通常、フォントは変形されません。 一般に、クライアントでは、まず isTransformed()
を呼び出し、isTransformed
から true が返された場合のみこのメソッドを呼び出すようにしてください。
Font
オブジェクトの変形体属性を表す AffineTransform
オブジェクト。public String getFamily()
Font
のファミリ名を返します。
フォントのファミリ名はフォント固有です。Helvetica Italic と Helvetica Bold の 2 つのフォントには Helvetica という同じファミリ名が付いていますが、これらのフォントフェース名は Helvetica Bold と Helvetica Italic です。使用可能なファミリ名のリストは、GraphicsEnvironment.getAvailableFontFamilyNames()
メソッドを使用して取得できる可能性があります。
フォントの論理名を取得するには getName
を使用します。フォントのフォントフェース名を取得するには getFontName
を使用します。
Font
のファミリ名を表す String
。getName()
, getFontName()
public String getFamily(Locale l)
Font
のファミリ名を返します。
フォントのファミリ名はフォント固有です。Helvetica Italic と Helvetica Bold の 2 つのフォントには Helvetica という同じファミリ名が付いていますが、これらのフォントフェース名は Helvetica Bold と Helvetica Italic です。使用可能なファミリ名のリストは、GraphicsEnvironment.getAvailableFontFamilyNames()
メソッドを使用して取得できる可能性があります。
フォントのフォントフェース名を取得するには getFontName
を使用します。
l
- ファミリ名を取得するロケールString
。getFontName()
, Locale
public String getPSName()
Font
のポストスクリプト名を返します。フォントのファミリ名を取得するには getFamily
を使用します。フォントのフォントフェース名を取得するには getFontName
を使用します。Font
のポストスクリプト名を表す String
。public String getName()
Font
の論理名を返します。フォントのファミリ名を取得するには getFamily
を使用します。フォントのフォントフェース名を取得するには getFontName
を使用します。Font
の論理名を表す String
。getFamily()
, getFontName()
public String getFontName()
Font
のフォントフェース名を返します。 たとえば、フォントフェース名として Helvetica Bold が返されます。フォントのファミリ名を取得するには getFamily
を使用します。フォントの論理名を取得するには getName
を使用します。Font
のフォントフェース名を表す String
。getFamily()
, getName()
public String getFontName(Locale l)
Font
のフォントフェース名を返します。 たとえば、フォントフェース名として Helvetica Fett が返されます。フォントのファミリ名を取得するには getFamily
を使用します。l
- フォントフェース名を取得するロケールString
。getFamily()
, Locale
public int getStyle()
Font
のスタイルを返します。PLAIN、BOLD、ITALIC、または BOLD+ITALIC のいずれかです。Font
のスタイルisPlain()
, isBold()
, isItalic()
public int getSize()
Font
のポイントサイズを返します。 ほとんどのユーザーは、ポイントサイズでのフォントのグリフサイズの指定に慣れています。このポイントサイズは、シングルスペースのテキストドキュメント上の、ある行のベースラインから次の行のベースラインまでの距離を定義します。 ポイントサイズは文字体裁のポイントをベースにしており、およそ 1/72 インチです。
Java (TM) 2D API の規約では、1 ポイントがユーザー座標の 1 単位に相当します。ユーザー空間座標からデバイス空間座標への変換に標準化された変換を使用する場合、72 ユーザー空間単位がデバイス空間の 1 インチと等しくなります。この場合、1 ポイントは 1/72 インチです。
Font
のポイントサイズ。getSize2D()
, GraphicsConfiguration.getDefaultTransform()
, GraphicsConfiguration.getNormalizingTransform()
public float getSize2D()
float
値で表された、この Font
のポイントサイズを返します。float
値で表された、このFont
のポイントサイズ。getSize()
public boolean isPlain()
Font
オブジェクトのスタイルが PLAIN であるかどうかを示します。Font
のスタイルが PLAIN の場合は true
、そうでない場合は false
。getStyle()
public boolean isBold()
Font
オブジェクトのスタイルが BOLD であるかどうかを示します。Font
オブジェクトのスタイルが BOLD の場合は true
、そうでない場合は false
。getStyle()
public boolean isItalic()
Font
オブジェクトのスタイルが ITALIC であるかどうかを示します。Font
オブジェクトのスタイルが ITALIC の場合は true
、そうでない場合は false
。getStyle()
public boolean isTransformed()
Font
オブジェクトに、Size 属性以外にサイズに影響を与える変形体が含まれているかどうかを示します。Font
オブジェクトが非恒等 AffineTransform 属性を持つ場合は true
、それ以外の場合は false
。getTransform()
public boolean hasLayoutAttributes()
public static Font getFont(String nm)
Font
オブジェクトを返します。nm
は取得するシステムプロパティーの名前として扱われます。 このプロパティーの String
値は、Font.decode(String)
の仕様に従って、Font
オブジェクトとして解釈されます。指定されたプロパティーが見つからない場合、または実行するコードにプロパティーを読み取るアクセス権がない場合は、null を返します。nm
- プロパティー名Font
オブジェクト、または該当するプロパティーが存在しない場合は null。NullPointerException
- nm が null である場合。decode(String)
public static Font decode(String str)
str
引数で説明されている Font
を返します。 必要なフォントをメソッドが確実に返すためには、str
パラメータの書式を次のいずれかに設定します
"PLAIN"
、"BOLD"
、"BOLDITALIC"
、または "ITALIC"
のいずれかです (大文字または小文字のどちらでも指定可能)。pointsize は正の十進数の整数で表したポイントサイズです。 太字でポイントサイズ 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()
メソッドを使用します。 str
が null
の場合、ファミリ名が「Dialog」、サイズが 12、スタイルが PLAIN の新しい Font
が返されます。
str
- フォント名、または null
str
で指定される Font
オブジェクト。str
が null
の場合は新しいデフォルト Font
。getFamily()
public static Font getFont(String nm, Font font)
Font
を取得します。 System
の getProperty
メソッドの場合と同じように、最初の引数は取得するシステムプロパティーの名前として扱われます。 このプロパティーの String
値は、Font
オブジェクトとして解釈されます。
プロパティー値は Font.decode(String)
によって受け入れられる形式のいずれかです。指定されたプロパティーが見つからない場合、または実行するコードにプロパティーを読み取るアクセス権がない場合は、font
引数が返されます。
nm
- プロパティー名。大文字と小文字は区別されないfont
-プロパティー nm
が定義されていない場合に返されるデフォルトの Font
Font
値。NullPointerException
- nm が null である場合。decode(String)
public int hashCode()
Font
のハッシュコードを返します。hashCode
、クラス: Object
Font
のハッシュコード値。Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public boolean equals(Object obj)
Font
オブジェクトを指定された Object
と比較します。equals
、クラス: Object
obj
- 比較する Object
Font
オブジェクトである場合は true
、そうでない場合は false
。Object.hashCode()
, HashMap
public String toString()
Font
オブジェクトを String
表現に変換します。public int getNumGlyphs()
Font
内のグリフの数を返します。 この Font
のグリフコードの範囲は、0 から getNumGlyphs()
- 1 です。Font
のグリフ数。public int getMissingGlyphCode()
Font
に、指定された Unicode コードポイントのグリフがないときに使用される glyphCode を返します。Font
の glyphCode。public byte getBaselineFor(char c)
大きなフォントはさまざまな書記法をサポートでき、各書記法は別々のベースラインを使用できます。文字引数は、使用する書記法を決めます。クライアントは、すべての文字が同じベースラインを使用すると仮定することはできません。
c
- 書記法を識別するための文字LineMetrics.getBaselineOffsets()
, ROMAN_BASELINE
, CENTER_BASELINE
, HANGING_BASELINE
public Map<TextAttribute,?> getAttributes()
Font
で使用可能なフォント属性のマップを返します。属性には、合字やグリフの代用などが含まれます。Font
の属性マップ。public AttributedCharacterIterator.Attribute[] getAvailableAttributes()
Font
でサポートされているすべての属性のキーを返します。それらの属性は、ほかのフォントを派生させるために使用できます。Font
がサポートするすべての属性のキーが格納されている配列。public Font deriveFont(int style, float size)
Font
オブジェクトを複製し、新しいスタイルとサイズを適用することによって、新しい Font
オブジェクトを作成します。style
- 新しい次のものに対するスタイル: Font
size
- 新しい Font
のサイズFont
オブジェクト。public Font deriveFont(int style, AffineTransform trans)
Font
オブジェクトを複製し、新しいスタイルと変形体を適用することによって、新しい Font
オブジェクトを作成します。style
- 新しい次のものに対するスタイル: Font
trans
- 新しい Font
に関連付けられた AffineTransform
Font
オブジェクト。IllegalArgumentException
- trans
が null
の場合public Font deriveFont(float size)
Font
オブジェクトを複製し、それに新しいサイズを適用することによって、新しい Font
オブジェクトを作成します。size
- 新しい Font
のサイズ。Font
オブジェクト。public Font deriveFont(AffineTransform trans)
Font
オブジェクトを複製し、それに新しい変形体を適用することによって、新しい Font
オブジェクトを作成します。trans
- 新しい Font
に関連付けられた AffineTransform
Font
オブジェクト。IllegalArgumentException
- trans
が null
の場合public Font deriveFont(int style)
Font
オブジェクトを複製し、それに新しいスタイルを適用することによって、新しい Font
オブジェクトを作成します。style
- 新しい次のものに対するスタイル: Font
Font
オブジェクト。public Font deriveFont(Map<? extends AttributedCharacterIterator.Attribute,?> attributes)
Font
オブジェクトを複製し、それに新しいフォント属性のセットを適用することによって、新しい Font
オブジェクトを作成します。attributes
- 新しい Font
に使用可能な属性のマップFont
オブジェクト。public boolean canDisplay(char c)
Font
に、指定された文字のグリフが含まれているかどうかをチェックします。
注: このメソッドは、補助文字を処理できません。 補助文字を含むすべての Unicode 文字をサポートするには、canDisplay(int)
メソッドまたは canDisplayUpTo
メソッドを使用してください。
c
- グリフが必要な文字Font
がこの文字のグリフを持つ場合は true
、そうでない場合は false
。public boolean canDisplay(int codePoint)
Font
に、指定された文字のグリフが含まれているかどうかをチェックします。codePoint
- グリフが必要な文字 (Unicode コードポイント)。Font
がこの文字のグリフを持つ場合は true
、そうでない場合は false
。IllegalArgumentException
- コードポイントが有効な Unicode コードポイントでない場合。Character.isValidCodePoint(int)
public int canDisplayUpTo(String str)
Font
が指定された String
を表示できるかどうかを示します。Unicode エンコーディング文字列の場合、特定のフォントで文字列を表示できるかどうかを確認することが重要になります。 このメソッドは、String
str
内のオフセットを返します。このオフセットは、欠如しているグリフコードを使用しないかぎりこの Font
では表示できない最初の文字を示します。 この Font
ですべての文字を表示できる場合は、-1 が返されます。str
- String
オブジェクトFont
が表示できない str
内の最初の文字を指す str
へのオフセット、またはこの Font
が str
内のすべての文字を表示できる場合は -1
。public int canDisplayUpTo(char[] text, int start, int limit)
Font
が、start
で始まり、limit
で終わる指定された text
内の文字を表示できるかどうかを示します。このメソッドは簡易オーバーロードです。text
- char
値の指定された配列start
- 指定された char
値の配列内の指定された開始オフセット (char
数)limit
- 指定された char
値の配列内の指定された終了オフセット (char
数)Font
が表示できない text
内の最初の文字を指す text
へのオフセット、またはこの Font
が text
内のすべての文字を表示できる場合は -1
。public int canDisplayUpTo(CharacterIterator iter, int start, int limit)
Font
が、start
で始まり、limit
で終わる iter
によって指定されたテキストを表示できるかどうかを示します。iter
- CharacterIterator
オブジェクトstart
- 指定された CharacterIterator
内の指定された開始オフセット。limit
- 指定された CharacterIterator
内の指定された終了オフセット。Font
が表示できない iter
内の最初の文字を指す iter
へのオフセット、またはこの Font
が iter
内のすべての文字を表示できる場合は -1
。public float getItalicAngle()
Font
のイタリックの角度を返します。 イタリックの角度とはこの Font
のポスチャー (傾き) にもっとも一致するキャレットの逆傾斜です。Font
の ITALIC スタイルの角度。TextAttribute.POSTURE
public boolean hasUniformLineMetrics()
Font
に均一のラインメトリックスが含まれているかどうかをチェックします。 論理 Font
は、複合フォントの場合があります。複合フォントは、複数のコード範囲を網羅するために複数の物理フォントで構成されています。 それらの各フォントは、別々の LineMetrics
を持つ場合があります。 論理 Font
が単一のフォントの場合、メトリックスは均一です。Font
が均一のラインメトリックスを持つ場合は true
、そうでない場合は false
。public LineMetrics getLineMetrics(String str, FontRenderContext frc)
str
- 指定されたString
frc
- 指定された FontRenderContext
String
と FontRenderContext
で作成された LineMetrics
オブジェクト。public LineMetrics getLineMetrics(String str, int beginIndex, int limit, FontRenderContext frc)
LineMetrics
オブジェクトを返します。str
- 指定されたString
beginIndex
- 次の初期オフセット: str
limit
- 次の終了オフセット: str
frc
- 指定された FontRenderContext
LineMetrics
オブジェクト。public LineMetrics getLineMetrics(char[] chars, int beginIndex, int limit, FontRenderContext frc)
LineMetrics
オブジェクトを返します。chars
- 文字の配列beginIndex
- 次の初期オフセット: chars
limit
- 次の終了オフセット: chars
frc
- 指定された FontRenderContext
LineMetrics
オブジェクト。public LineMetrics getLineMetrics(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
LineMetrics
オブジェクトを返します。ci
- 指定されたCharacterIterator
beginIndex
- 次の初期オフセット: ci
limit
- 次の終了オフセット: ci
frc
- 指定された FontRenderContext
LineMetrics
オブジェクト。public Rectangle2D getStringBounds(String str, FontRenderContext frc)
FontRenderContext
内の指定された String
の論理境界を返します。レディングを含む起点、アセント、有効幅、および高さが論理バウンドの内容です。論理バウンドは常にすべてのテキストを含むとは限りません。たとえば言語やフォントによっては、アクセントのマークがアセントの上、またはディセントの下に来ることがあります。すべてのテキストを囲む、目で確認できるバウンディングボックスを取得するには、TextLayout
の getBounds
メソッドを使用します。
注:返された境界は、ベースラインを基準にした座標で表されています (class notes
を参照)。
str
- 指定されたString
frc
- 指定された FontRenderContext
FontRenderContext
で、指定された String
のバウンディングボックスを表す Rectangle2D
。FontRenderContext
, createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
public Rectangle2D getStringBounds(String str, int beginIndex, int limit, FontRenderContext frc)
FontRenderContext
内の指定された String
の論理境界を返します。レディングを含む起点、アセント、有効幅、および高さが論理バウンドの内容です。論理バウンドは常にすべてのテキストを含むとは限りません。たとえば言語やフォントによっては、アクセントのマークがアセントの上、またはディセントの下に来ることがあります。すべてのテキストを囲む、目で確認できるバウンディングボックスを取得するには、TextLayout
の getBounds
メソッドを使用します。
注:返された境界は、ベースラインを基準にした座標で表されています (class notes
を参照)。
str
- 指定されたString
beginIndex
- 次の初期オフセット: str
limit
- 次の終了オフセット: str
frc
- 指定された FontRenderContext
FontRenderContext
で、指定された String
のバウンディングボックスを表す Rectangle2D
。IndexOutOfBoundsException
- beginIndex
が 0 より小さいか、limit
が str
の長さより大きいか、または beginIndex
が limit
より大きい場合。FontRenderContext
, createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
public Rectangle2D getStringBounds(char[] chars, int beginIndex, int limit, FontRenderContext frc)
FontRenderContext
内の指定された文字の配列の論理境界を返します。レディングを含む起点、アセント、有効幅、および高さが論理バウンドの内容です。論理バウンドは常にすべてのテキストを含むとは限りません。たとえば言語やフォントによっては、アクセントのマークがアセントの上、またはディセントの下に来ることがあります。すべてのテキストを囲む、目で確認できるバウンディングボックスを取得するには、TextLayout
の getBounds
メソッドを使用します。
注:返された境界は、ベースラインを基準にした座標で表されています (class notes
を参照)。
chars
- 文字の配列beginIndex
- 文字配列の開始オフセットlimit
- 文字配列の終了オフセットfrc
- 指定された FontRenderContext
FontRenderContext
で、指定された文字配列のバウンディングボックスを表す Rectangle2D
。IndexOutOfBoundsException
- beginIndex
が 0 より小さいか、limit
が chars
の長さより大きいか、または beginIndex
が limit
より大きい場合。FontRenderContext
, createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
public Rectangle2D getStringBounds(CharacterIterator ci, int beginIndex, int limit, FontRenderContext frc)
FontRenderContext
内の指定された CharacterIterator
でインデックスが付けられた文字の論理境界を返します。レディングを含む起点、アセント、有効幅、および高さが論理バウンドの内容です。論理バウンドは常にすべてのテキストを含むとは限りません。たとえば言語やフォントによっては、アクセントのマークがアセントの上、またはディセントの下に来ることがあります。すべてのテキストを囲む、目で確認できるバウンディングボックスを取得するには、TextLayout
の getBounds
メソッドを使用します。
注:返された境界は、ベースラインを基準にした座標で表されています (class notes
を参照)。
ci
- 指定されたCharacterIterator
beginIndex
- 次の初期オフセット: ci
limit
- ci
の終了オフセットfrc
- 指定された FontRenderContext
FontRenderContext
で、指定された CharacterIterator
内のインデックス付き文字のバウンディングボックスを表す Rectangle2D
。IndexOutOfBoundsException
- beginIndex
が ci
の開始インデックスより小さい場合、limit
が ci
の終了インデックスより大きい場合、または beginIndex
が limit
より大きい場合FontRenderContext
, createGlyphVector(java.awt.font.FontRenderContext, java.lang.String)
public Rectangle2D getMaxCharBounds(FontRenderContext frc)
FontRenderContext
で定義された、最大の境界を持つ文字の境界を返します。
注:返された境界は、ベースラインを基準にした座標で表されています (class notes
を参照)。
frc
- 指定された FontRenderContext
Rectangle2D
。public GlyphVector createGlyphVector(FontRenderContext frc, String str)
Font
内の Unicode cmap に基づいて文字からグリフに 1 対 1 にマッピングすることによって、GlyphVector
を作成します。このメソッドではマッピング以外の処理を行いません。このため、アラビア語、ヘブライ語、タイ語、およびインド語派の言語などの、再配置、整形、および合字の置き換えが必要な言語ではこのメソッドを使用できません。frc
- 指定されたFontRenderContext
str
- 指定された String
String
と指定された FontRenderContext
で作成された新しい GlyphVector
。public GlyphVector createGlyphVector(FontRenderContext frc, char[] chars)
Font
内の Unicode cmap に基づいて文字からグリフに 1 対 1 にマッピングすることによって、GlyphVector
を作成します。このメソッドではマッピング以外の処理を行いません。このため、アラビア語、ヘブライ語、タイ語、およびインド語派の言語などの、再配置、整形、および合字の置き換えが必要な言語ではこのメソッドを使用できません。frc
- 指定された FontRenderContext
chars
- 指定された文字配列FontRenderContext
で作成された新しい GlyphVector
。public GlyphVector createGlyphVector(FontRenderContext frc, CharacterIterator ci)
Font
内の Unicode cmap に基づいて指定された文字からグリフに 1 対 1 にマッピングすることによって、GlyphVector
を作成します。このメソッドではマッピング以外の処理を行いません。このため、アラビア語、ヘブライ語、タイ語、およびインド語派の言語などの、再配置、整形、および合字の置き換えが必要な言語ではこのメソッドを使用できません。frc
- 指定されたFontRenderContext
ci
- 指定された CharacterIterator
CharacterIterator
と指定された FontRenderContext
で作成された新しい GlyphVector
。public GlyphVector createGlyphVector(FontRenderContext frc, int[] glyphCodes)
Font
内の Unicode cmap に基づいて文字からグリフに 1 対 1 にマッピングすることによって、GlyphVector
を作成します。このメソッドではマッピング以外の処理を行いません。このため、アラビア語、ヘブライ語、タイ語、およびインド語派の言語などの、再配置、整形、および合字の置き換えが必要な言語ではこのメソッドを使用できません。frc
- 指定された FontRenderContext
glyphCodes
- 指定された整数配列FontRenderContext
で作成された新しい GlyphVector
。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
- 開始位置または終了位置が範囲外の場合Bidi
, LAYOUT_LEFT_TO_RIGHT
, LAYOUT_RIGHT_TO_LEFT
, LAYOUT_NO_START_CONTEXT
, LAYOUT_NO_LIMIT_CONTEXT
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.