SystemColor

SystemColorの機能と使用法について解説します。
SystemColor は Color クラスのサブクラスです。 ウィンドウシステムでユーザーが使用している色の情報を 取得し、利用する機能を提供します。 このクラスを通じて、Javaのアプリケーションとウィンドウシステムの他の アプリケーションとの統一感を増すことができます。
 システムから取得した色を識別するための int型の static な定数と それに対応するstatic な SystemColor オブジェクトが定義されています。 現在のところ次の 26種類が利用できます。 (この機能はシステムとの相性に依存します。 現在のところ全てシステムで全ての色が正しく取得できるとは限りません。)

int型定数 SystemColorオブジェクト 意味
DESKTOP desktop デスクトップのワークスペースの背景色
ACTIVE_CAPTION activeCaption ウィンドウの下部に表示されるキャプション領域の背景色
ACTIVE_CAPTION_TEXT activeCaptionText ウィンドウの下部に表示されるキャプションの文字色
ACTIVE_CAPTION_BORDER activeCaptionBorder ウィンドウの下部に表示されるキャプション領域の境界線の色
INACTIVE_CAPTION inactiveCaption アクティブな状態でないキャプション領域の背景色
INACTIVE_CAPTION_TEXT inactiveCaptionText アクティブな状態でないキャプションの文字色
INACTIVE_CAPTION_BORDER inactiveCaptionBorder アクティブな状態でないキャプション領域の境界線の色
WINDOW window ウィンドウの標準の背景色
WINDOW_BORDER windowBorder ウィンドウの標準の境界線の色
WINDOW_TEXT windowText ウィンドウの標準の文字色
MENU menu メニューの背景色
MENU_TEXT menuText メニューの文字色
TEXT text テキスト入力アイテムの背景色
TEXT_TEXT textText テキスト入力アイテムの文字色
TEXT_HIGHLIGHT textHighlight ハイライト表示時のテキスト入力アイテムの背景色
TEXT_HIGHLIGHT_TEXT textHighlightText ハイライト表示時のテキスト入力アイテムの文字色
TEXT_INACTIVE_TEXT textInactiveText アクティブでない状態のテキスト入力アイテムの文字色
CONTROL control ボタンなどのアイテムの背景色
CONTROL_TEXT controlText ボタンなどのアイテムの文字色
CONTROL_HIGHLIGHT controlHighlight アイテムのハイライトされる部分の色
CONTROL_LT_HIGHLIGHT controlLtHighlight アイテムの強くハイライトされる部分の色
CONTROL_SHADOW controlShadow アイテムの陰の部分の色
CONTROL_DK_SHADOW controlDkShadow アイテムの暗い陰の部分の色
SCROLLBAR scrollbar スクロールバーの背景色
INFO info 警告やヘルプのポップアップウィンドウの背景色
INFO_TEXT infoText 警告やヘルプのポップアップウィンドウの文字色

上の表の色情報は、public で static です。 SystemColorのオブジェクトを生成しなくても自由に参照できます。 SystemColor は Color のサブクラスですから、 取り出したあとは、通常の Color と同じように利用できます。


Button button;
Color  bgcolor;
bgcolor = SystemColor.control;   // システムの標準のボタンの色を得る
button.setBackground( bgcolor ); // その色をボタンに設定する

あるいは、次のように記述すれば 通常の static な Color を利用する場合とほとんど変わりませんね。

Button button;
button.setBackgrond( SystemColor.control );