Java

font.properties ファイル

Java 2 プラットフォームでは、すべての実装でのサポートが求められる 5 つの論理フォント名 (Serif、SansSerif、Monospaced、Dialog、DialogInput) が定義されています。 論理フォント名は、実装に依存した方法で、物理フォントにマップされます。

Sun の Java 2 Runtime Environment では、論理フォント名から物理フォントへのマッピングに font.properties ファイルが使用されます。 ホストオペレーティングシステムのバージョンおよびロケールに基づき、異なるマッピングをサポートする複数のファイルが存在します。 ファイルの位置は、J2RE のインストール先の lib ディレクトリです。 ユーザは font.properties ファイルを変更したり新規に作成したりすることで、独自のシステム設定に応じてマッピングを調整できます。 ただし、この操作により J2RE が変更されますが、Sun は変更後の J2RE をサポートしないことに留意してください。

font.properties ファイルは実装に依存しています。 Java 2 プラットフォームの実装すべてでこのファイルが使用されるわけではありません。また、その内容と形式は実行環境およびリリースにより異なります。 このドキュメントでは、Sun の Java 2 Runtime Environment バージョン 1.4.0 で使用される形式について説明します。

  1. font.properties ファイルのロード
  2. font.properties ファイルで使用される名前
  3. すべてのプラットフォームに共通のプロパティ
  4. Windows 用のプロパティ
  5. Solaris および Linux 用のプロパティ


font.properties ファイルのロード

font.properties ファイルは、Properties クラスで指定されるプロパティファイルであり、このクラスによってロードされます。 適切なファイルを検索するには、次の情報を指定する必要があります。

ランタイムでは、次のファイルのうち、最初に見つかったものが使用されます。

	JavaHome/lib/font.properties.Language_Country_Encoding.OSVersion
	JavaHome/lib/font.properties.Language_Country_Encoding.OS
	JavaHome/lib/font.properties.Language_Country_Encoding.Version
	JavaHome/lib/font.properties.Language_Country_Encoding
	JavaHome/lib/font.properties.Language_Country.OSVersion
	JavaHome/lib/font.properties.Language_Country.OS
	JavaHome/lib/font.properties.Language_Country.Version
	JavaHome/lib/font.properties.Language_Country
	JavaHome/lib/font.properties.Language_Encoding.OSVersion
	JavaHome/lib/font.properties.Language_Encoding.OS
	JavaHome/lib/font.properties.Language_Encoding.Version
	JavaHome/lib/font.properties.Language_Encoding
	JavaHome/lib/font.properties.Language.OSVersion
	JavaHome/lib/font.properties.Language.OS
	JavaHome/lib/font.properties.Language.Version
	JavaHome/lib/font.properties.Language
	JavaHome/lib/font.properties.Encoding.OSVersion
	JavaHome/lib/font.properties.Encoding.OS
	JavaHome/lib/font.properties.Encoding.Version
	JavaHome/lib/font.properties.Encoding
	JavaHome/lib/font.properties.OSVersion
	JavaHome/lib/font.properties.OS
	JavaHome/lib/font.properties.Version
	JavaHome/lib/font.properties


font.properties ファイルで使用される名前

font.properties ファイル全体で、さまざまな名前が使用されます。


すべてのプラットフォームに共通のプロパティ

コンポーネントフォントのマッピング

コンポーネントフォントのマッピングのプロパティは、特定の論理フォントとスタイルの文字をレンダリングするときに使用される物理フォントを表します。 通常は、論理フォントとスタイルの各組み合わせに対してコンポーネントフォントのエントリが複数あり、Unicode 文字を広範囲にカバーしています。 エントリは、コンポーネントインデックスによって識別されます。 文字をレンダリングするとき、ランタイムは、コンポーネントインデックスで定義された順にコンポーネントフォントを検査します。この文字のレンダリングが可能で、除外されていないコンポーネントフォントのうち、最初に見つかったものが使用されます。

キーの形式は次のとおりです。

ComponentFontMappingKey:
	LogicalFontName.StyleName.ComponentIndex
	LogicalFontName.ComponentIndex

StyleName を省略した場合は、plain と見なされます。 1 つの論理フォントの中では、plain というスタイル名は、すべてのエントリに対して指定するか、すべてのエントリに対して省略するかのどちらかに統一してください。 ComponentIndex は、同じ論理フォントとスタイルに関する一連のエントリの中で、コンポーネントフォントのエントリを識別します。 論理フォントとスタイルに n 個のエントリがある場合、インデックスの範囲は 0 から n-1 までとなります。 同一の論理フォントに対しては、異なるスタイルの間でも同一のコンポーネントインデックスを使用してください。ほかの一部のプロパティで、論理フォント名とコンポーネントインデックスだけを参照している場合があるからです。

値の形式はプラットフォームによって異なります。 Solaris および Linux の場合、値はプラットフォームのフォント名です。 Windows の場合、値は次のような形式になります。

	PlatformFontName , WindowsCharsetName

Windows 文字セット名は、このフォントで使用される主要な文字セットを識別します。 この情報を使って、Java 2 Runtime Envionment では、ピア AWT テキストコンポーネントで使用するコンポーネントフォントが選択され、Windows では、指定されたフォントが見つからない場合に、代理のフォントが選択されます。

コンポーネントフォントの文字エンコーディング

コンポーネントフォントの文字エンコーディングのプロパティは、コンポーネントフォントに AWT がアクセスするときに使用される文字エンコーディングを示します。 このプロパティは、Unicode を使用してアクセスできないコンポーネントフォントにだけ必要です。最近の TrueType フォントには、通常は Unicode を使ってアクセスできるため、このプロパティは必要ありません。

キーの形式は次のとおりです。

	fontcharset.LogicalFontName.ComponentIndex

値は、文字コンバータの完全修飾クラス名です。 このリリースでは、文字コンバータへのアクセスに古い sun.io インタフェースを使用しているため、Java 2 Runtime Environment に用意されている文字エンコーディングのみ使用できます。 公式にサポートされている文字エンコーディングのクラス名の形式は次のとおりです。

	sun.io.CharToByteCanonicalName

将来のリリースでは、新しい java.nio.charset API を使用して文字コンバータにアクセスするため、サードパーティの文字コンバータも使用できるようになります。

除外範囲

除外範囲のプロパティは、特定のコンポーネントフォントによるレンダリングの対象から除外する Unicode 文字の範囲を指定します。 このプロパティは、(パフォーマンス上の理由などで) 多数の文字をサポートしているフォントを早い検索順位に置く必要があるが、そのフォントがサポートしている文字の一部を別のフォントで描画する必要がある場合に使用します。

キーの形式は次のとおりです。

	exclusion.LogicalFontName.ComponentIndex

値の形式は次のとおりです。

ExclusionRangeValue:
	Range
	Range , ExclusionRangeValue
 
Range:
	Char - Char
 
Char:
	HexDigit HexDigit HexDigit HexDigit

Char は、Unicode 文字を 16 進数として表現したものです。

フォント名の別名

フォント名の別名を使用することは推奨されません。フォント名の別名は、将来のリリースではサポートされなくなります。

キーの形式は次のとおりです。

	alias.LogicalFontName

値の形式は次のとおりです。

	LogicalFontName

欠落しているグリフ文字

欠落しているグリフ文字を定義することは推奨されません。欠落しているグリフ文字の定義は、将来のリリースではサポートされなくなります。

キーの形式は次のとおりです。

	default.char

値の形式は次のとおりです。

	Char


Windows 用のプロパティ

フォントファイル名

フォントファイル名のプロパティは、font.properties ファイルで使用される物理フォントを格納しているファイルの名前を指定します。 ファイル名をすべて指定しておくと、実行システムですべてのフォントファイルを開いてフォントを検索する必要がなくなるため、起動時間を短縮できます。

キーの形式は次のとおりです。

	filename.PlatformFontName

プラットフォームフォント名に含まれている空白文字は、下線 ("_") に置き換える必要があります。

値は、フォントを格納しているファイルの単純名です。 実行環境は、まず自身の lib/fonts ディレクトリでこのファイルを検索し、次に Windows のフォントディレクトリで検索します。

テキスト入力の文字セット

テキスト入力の文字セットを定義することは推奨されません。テキスト入力の文字セットの定義は、将来のリリースではサポートされなくなります。

キーの形式は次のとおりです。

	textinputcharset

値の形式は次のとおりです。

	WindowsCharsetName


Solaris および Linux 用のプロパティ

XFontSet 情報

java.awt.TextComponent などのピアコンポーネントの場合、Java 実行環境では X に XFontSet 情報を提供する必要があります。 X フォントセットのプロパティは、論理フォントとスタイルの各組み合わせから X フォントセットへのマッピングを指定します。 また、デフォルトの X フォントセットを定義する必要があります。

キーの形式は次のとおりです。

	fontset.LogicalFontName.StyleName
	fontset.default

値の形式は次のとおりです。

FontSetValue:
	PlatformFontName
	PlatformFontName , FontSetValue


Copyright © 2002 Sun Microsystems, Inc. All Rights Reserved.

コメントの送付先: java-intl@java.sun.com

Sun
Java ソフトウェア