UIManagerクラスの定義とコンストラクタ
UIManagerクラスの定義を確認します。クラス図は次のようになっています。
java.lang.Object javax.swing.UIManager public class UIManager extends Object implements Serializable
UIManagerクラスはコンストラクタを使ってオブジェクトを作成して利用するのではなく、UIManagerクラスで定義済みのstaticメソッドを使います。
UIManagerクラスを使って外観を管理するにはLook & Feelを設定することにより行います。Look & FeelはLookAndFeelクラスのオブジェクトとして定義されており、Javadで用意されているLook & Feelを切り替えて利用したり自分で定義することができます。
Look & Feelの一覧
それでは既に用意されているLook & Feelの一覧を確認してみます。UIManagerクラスで用意されている「getInstalledLookAndFeels」メソッドを使います。
public static UIManager.LookAndFeelInfo[] getInstalledLookAndFeels()
現在使用可能な LookAndFeel 実装を表す LookAndFeelInfo の配列を返します。 アプリケーションは LookAndFeelInfo オブジェクトを使用して、ユーザー用 Look & Feel オプションのメニューを構築したり、起動時に設定する Look & Feel を決定したりできます。大量の LookAndFeel オブジェクトの生成による 負荷を避けるため、LookAndFeelInfo は、実際の LookAndFeel インスタンスで はなく、LookAndFeel クラスのクラス名を管理します。 次に、LookAndFeelInfo のインスタンスから現在の Look & Feel を設定する例 を示します。 UIManager.setLookAndFeel(info.getClassName()); 戻り値: LookAndFeelInfo オブジェクトの配列
このメソッドを実行すると既に用意されているLook & Feelに関する情報を保持するUIManager.LookAndFeelInfoクラスのオブジェクトの配列を受け取ります。
Look & Feelの実装はLookAndFeelクラスを継承したクラスで定義されています。UIManager.LookAndFeelInfoクラスはLookAndFeelクラスを継承して作成されたクラスに関するクラス名や名前だけを管理しているものです。
クラス名を取得するにはUIManager.LookAndFeelInfoクラスで定義されている「getClassName」メソッドを使います。
public String getClassName()
この Look & Feel を実装するクラスの名前を返します。 戻り値: この LookAndFeel を実装するクラスの名前
またクラスの簡単な識別名を取得するにはUIManager.LookAndFeelInfoクラスで定義されている「getName」メソッドを使います。
public String getName()
Look & Feel の名前をメニューまたはほかの表現に適した形式で返します。 戻り値: 名前が格納されている String
実際の使い方は次のようになります。
UIManager.LookAndFeelInfo infos[] = UIManager.getInstalledLookAndFeels(); for(int i = 0 ; i < infos.length ; i++){ System.out.println(infos[i].getClassName()); System.out.println(infos[i].getName()); }
サンプルプログラム
では簡単なサンプルを作成して試してみます。
import javax.swing.UIManager; public class UIManagerTest1{ public static void main(String[] args){ UIManager.LookAndFeelInfo infos[] = UIManager.getInstalledLookAndFeels(); System.out.println("getClassName:"); for(int i = 0 ; i < infos.length ; i++){ System.out.println(infos[i].getClassName()); } System.out.println("getName:"); for(int i = 0 ; i < infos.length ; i++){ System.out.println(infos[i].getName()); } } }
上記をコンパイルした後で実行すると次のように表示されます。
getClassName: javax.swing.plaf.metal.MetalLookAndFeel com.sun.java.swing.plaf.motif.MotifLookAndFeel com.sun.java.swing.plaf.windows.WindowsLookAndFeel com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel getName: Metal CDE/Motif Windows Windows Classic
現在4つのLook & Feelが用意されており、それぞれ上記のクラスとして定義されていることが分かります。
次のページ以降でSwingアプリケーションのLook & Feelを切り替える方法を確認します。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。