モジュール java.desktop
パッケージ javax.swing

クラスUIManager

  • すべての実装されたインタフェース:
    Serializable


    public class UIManager
    extends Object
    implements Serializable
    UIManagerは、現在のLook & Feel、使用可能なLook & Feelのセット、Look & Feelの変更時に通知を受けるPropertyChangeListeners、Look & Feelのデフォルト値、およびさまざまなデフォルト値を取得するために使用する簡易メソッドを管理します。

    Look & Feelの指定

    Look & Feelの指定方法は2とおりあります。1つはLook & Feelのクラスの完全修飾名を指定する方法、もう1つはLookAndFeelのインスタンスを作成し、setLookAndFeelに渡す方法です。 次に、システムのLook & FeelにLook & Feelを設定する例を示します。
       UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
     
    次に、クラス名を指定してLook & Feelを設定する例を示します。
       UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
     
    Look & Feelを変更したら必ず、すべてのJComponents上でupdateUIを呼び出します。 SwingUtilities.updateComponentTreeUI(java.awt.Component)メソッドを使用すると、包含関係の階層に updateUIを簡単に適用できます。 詳細は、このメソッドを参照してください。 Look & Feelの変更後、 updateUIを呼び出さなかった場合の正確な動作は指定されていません。 予期しない例外、ペイントの問題、またはそれ以上に困った事態が発生する可能性が高いです。

    デフォルトのLook & Feel

    デフォルトのLook & Feelのクラスは、次の方法で選択されます。
    1. システム・プロパティのswing.defaultlafnon-nullの場合、このプロパティの値をデフォルトのLook & Feelのクラス名として使用します。
    2. Propertiesファイルのswing.propertiesが存在し、キーswing.defaultlafが格納されている場合、その値をデフォルトのLook & Feelのクラス名として使用します。 swing.propertiesが確認される場所は、Javaプラットフォームの実装によって異なる可能性があります。 通常、swing.propertiesファイルは、Javaインストール・ディレクトリのconfサブディレクトリにあります。 詳細は、使用する実装のリリース・ノートを参照してください。
    3. 上記以外の場合は、クロス・プラットフォームLook & Feelを使用します。

    デフォルト

    UIManagerは、UIDefaultsのセットを3組管理します。 これらは順番に、次のとおりです。
    1. 開発者のデフォルト。 わずかに例外はありますが、Swingでは、開発者のデフォルトは変更されません。開発者のデフォルトを変更または使用するのは、開発者自身です。
    2. Look & Feelのデフォルト。 Look & Feelのデフォルトは、Look & Feelを現在のLook & Feelとしてインストールしたとき(setLookAndFeel()が呼び出されたとき)、このLook & Feelによって提供されます。 Look & Feelのデフォルトは、 getLookAndFeelDefaults()メソッドを使って取得できます。
    3. システムのデフォルト。 システムのデフォルトは、Swingによって提供されます。
    どのgetメソッドを呼び出しても、各デフォルトが順番にチェックされ、最初に見つかったnon-nullの値が返されます。 たとえば、UIManager.getString("Table.foreground")を呼び出した場合、最初に開発者のデフォルトがチェックされます。 開発者のデフォルトに"Table.foreground"の値が含まれていれば、その値が返されます。そうでない場合は、Look & Feelのデフォルト、続いてシステムのデフォルトがチェックされます。

    getDefaultsは、この解決ロジックが組み込まれたUIDefaultsのカスタム・インスタンスを返します。 たとえば、UIManager.getDefaults().getString("Table.foreground")UIManager.getString("Table.foreground")と同等です。 どちらも、ここで説明したアルゴリズムに従って解決します。 ドキュメント内では、多くの場合、上記の解決ロジックを備えたUIDefaultsのカスタム・インスタンスを「デフォルト」と呼びます。

    Look & Feelが変更された場合、UIManagerはLook & Feelのデフォルトだけを変更します。UIManagerが開発者のデフォルトやシステムのデフォルトを変更することはありません。

    特定のLook & Feelでサポートされるデフォルトのセットは、そのLook & Feelに定義され、ドキュメント化されています。 さらに、個々のLook & Feel (または任意のLook & Feelが提供するComponentUI)が、それぞれのライフ・サイクル内の異なった時期にデフォルトにアクセスする場合があります。 積極的にデフォルトを検索するLook & Feelもあれば(この場合、Look & Feelのインストール後にデフォルトに変更を加えても効果はない)、めったにデフォルトにアクセスしないLook & Feelもあります。 (この場合、デフォルトの変更が既存のLook & Feelに影響を及ぼす) 結局、その他のLook & Feelは、デフォルト・テーブルから自身の設定を行わない可能性があります。 それにもかかわらず、通常、Look & Feelはなんらかのデフォルトを求めます。このため、一般に、あるLook & Feelが提供するComponentUIは、別のLook & Feelでは動作しません。

    警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースとの互換性がなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4以降、すべてのJavaBeans™用の長期間の格納サポートがjava.beansパッケージに追加されています。 XMLEncoderを参照してください。

    導入されたバージョン:
    1.2
    関連項目:
    直列化された形式
    • コンストラクタの詳細

      • UIManager

        public 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オブジェクトの配列
        関連項目:
        setLookAndFeel(javax.swing.LookAndFeel)
      • setInstalledLookAndFeels

        public static void setInstalledLookAndFeels​(UIManager.LookAndFeelInfo[] infos)
                                             throws SecurityException
        使用可能なLook & Feelのセットを設定します。 このメソッドは、すべてのLookAndFeelInfosnon-nullであるかどうかをチェックするわけではありませんが、infos配列にはnon-nullの値だけを指定することを強くお勧めします。
        パラメータ:
        infos - 使用可能なLook & Feelを指定するLookAndFeelInfoオブジェクトのセット
        例外:
        NullPointerException - infosnullである場合
        SecurityException
        関連項目:
        getInstalledLookAndFeels()
      • installLookAndFeel

        public static void installLookAndFeel​(UIManager.LookAndFeelInfo info)
        使用可能なLook & Feelのセットに、指定されたLook & Feelを追加します。 このメソッドはnull infoを許容しますが、non-nullの値を使用することを強くお勧めします。
        パラメータ:
        info - Look & Feelを指定し、そのLook & Feelを実装するクラスを識別するLookAndFeelInfoオブジェクト
        関連項目:
        setInstalledLookAndFeels(javax.swing.UIManager.LookAndFeelInfo[])
      • installLookAndFeel

        public static void installLookAndFeel​(String name,
                                              String className)
        使用可能なLook & Feelのセットに、指定されたLook & Feelを追加します。 このメソッドは引数のチェックを行いませんが、 non-nullの値を使用することを強くお勧めします。
        パラメータ:
        name - Look & Feelの説明的な名前
        className - このLook & Feelを実装するクラスの名前
        関連項目:
        setInstalledLookAndFeels(javax.swing.UIManager.LookAndFeelInfo[])
      • setLookAndFeel

        public static void setLookAndFeel​(LookAndFeel newLookAndFeel)
                                   throws UnsupportedLookAndFeelException
        newLookAndFeelを現在のLook & Feelとして設定します。 現在のLook & Feelがnon-nullである場合、その上で uninitializeが呼び出されます。 newLookAndFeelnon-nullである場合、その上でinitializeが呼び出され、続いてgetDefaultsが呼び出されます。 それまでのLook & Feelのデフォルトは、 newLookAndFeel.getDefaults()が返すデフォルトに置き換えられます。 newLookAndFeelnullの場合、Look & Feelのデフォルトはnullに設定されます。

        nullは、Look & Feelをnullに設定する場合に使用できます。 ほとんどの場合、Swingを機能させるためにはLookAndFeelが必要です。したがって、LookAndFeelnullに設定することはまったくお薦めしません。

        これはJavaBeansバウンド・プロパティです。

        パラメータ:
        newLookAndFeel - インストールするLookAndFeel
        例外:
        UnsupportedLookAndFeelException - newLookAndFeelnon-nullで、newLookAndFeel.isSupportedLookAndFeel()falseを返す場合
        関連項目:
        getLookAndFeel()
      • getSystemLookAndFeelClassName

        public static String getSystemLookAndFeelClassName​()
        ネイティブ・システムのLook & Feelを実装するLookAndFeelクラスの名前があればそれを返し、そうでない場合はデフォルトのクロス・プラットフォームのLookAndFeelクラスの名前を返します。 この値は、swing.systemlafシステム・プロパティを設定することによりオーバーライドできます。
        戻り値:
        LookAndFeelクラスのString
        関連項目:
        setLookAndFeel(javax.swing.LookAndFeel), getCrossPlatformLookAndFeelClassName()
      • getCrossPlatformLookAndFeelClassName

        public static String getCrossPlatformLookAndFeelClassName​()
        デフォルト・クロス・プラットフォームのLook & Feel、つまりJava Look & Feel (JLF)を実装するLookAndFeelクラスの名前を返します。 この値は、swing.crossplatformlafシステム・プロパティを設定することによりオーバーライドできます。
        戻り値:
        JLFの実装クラスの文字列
        関連項目:
        setLookAndFeel(javax.swing.LookAndFeel), getSystemLookAndFeelClassName()
      • getDefaults

        public static UIDefaults getDefaults​()
        デフォルトを返します。 返されたデフォルトは、そのクラスのドキュメントに指定されたロジックで解決されます。
        戻り値:
        デフォルト値を格納するUIDefaultsオブジェクト
      • getFont

        public static Font getFont​(Object key)
        デフォルトからフォントを返します。 keyの値がFontでない場合、nullが返されます。
        パラメータ:
        key - フォントを指定するObject
        戻り値:
        Fontオブジェクト
        例外:
        NullPointerException - keynullである場合
      • getFont

        public static Font getFont​(Object key,
                                   Locale l)
        デフォルトから、指定されたロケールに適したフォントを返します。 keyの値がFontでない場合、nullが返されます。
        パラメータ:
        key - フォントを指定するObject
        l - そのフォントが適しているLocaleLocalenullの場合の処理方法については、UIDefaultsを参照
        戻り値:
        Fontオブジェクト
        例外:
        NullPointerException - keynullである場合
        導入されたバージョン:
        1.4
      • getColor

        public static Color getColor​(Object key)
        デフォルトから色を返します。 keyの値がColorでない場合、nullが返されます。
        パラメータ:
        key - 色を指定するObject
        戻り値:
        Colorオブジェクト
        例外:
        NullPointerException - keynullである場合
      • getColor

        public static Color getColor​(Object key,
                                     Locale l)
        デフォルトから、指定されたロケールに適した色を返します。 keyの値がColorでない場合、nullが返されます。
        パラメータ:
        key - 色を指定するObject
        l - その色が適しているLocaleLocalenullの場合の処理方法については、UIDefaultsを参照
        戻り値:
        Colorオブジェクト
        例外:
        NullPointerException - keynullである場合
        導入されたバージョン:
        1.4
      • getIcon

        public static Icon getIcon​(Object key)
        デフォルトからIconを返します。 keyの値がIconでない場合、nullが返されます。
        パラメータ:
        key - アイコンを指定するObject
        戻り値:
        Iconオブジェクト
        例外:
        NullPointerException - keynullである場合
      • getIcon

        public static Icon getIcon​(Object key,
                                   Locale l)
        デフォルトから、指定されたロケールに適したIconを返します。 keyの値がIconでない場合、nullが返されます。
        パラメータ:
        key - アイコンを指定するObject
        l - そのアイコンが適しているLocaleLocalenullの場合の処理方法については、UIDefaultsを参照
        戻り値:
        Iconオブジェクト
        例外:
        NullPointerException - keynullである場合
        導入されたバージョン:
        1.4
      • getBorder

        public static Border getBorder​(Object key)
        デフォルトからボーダーを返します。 keyの値がBorderでない場合、nullが返されます。
        パラメータ:
        key - ボーダーを指定するObject
        戻り値:
        Borderオブジェクト
        例外:
        NullPointerException - keynullである場合
      • getBorder

        public static Border getBorder​(Object key,
                                       Locale l)
        デフォルトから、指定されたロケールに適したボーダーを返します。 keyの値がBorderでない場合、nullが返されます。
        パラメータ:
        key - ボーダーを指定するObject
        l - そのボーダーが適しているLocaleLocalenullの場合の処理方法については、UIDefaultsを参照
        戻り値:
        Borderオブジェクト
        例外:
        NullPointerException - keynullである場合
        導入されたバージョン:
        1.4
      • getString

        public static String getString​(Object key)
        デフォルトから文字列を返します。 keyの値がStringでない場合、nullが返されます。
        パラメータ:
        key - 文字列を指定するObject
        戻り値:
        String
        例外:
        NullPointerException - keynullである場合
      • getString

        public static String getString​(Object key,
                                       Locale l)
        デフォルトから、指定されたロケールに適した文字列を返します。 keyの値がStringでない場合、nullが返されます。
        パラメータ:
        key - 文字列を指定するObject
        l - その文字列が適しているLocaleLocalenullの場合の処理方法については、UIDefaultsを参照
        戻り値:
        String
        例外:
        NullPointerException - keynullである場合
        導入されたバージョン:
        1.4
      • getInt

        public static int getInt​(Object key)
        デフォルトからint値を返します。 keyの値がIntegerでない場合や存在しない場合は、0が返されます。
        パラメータ:
        key - int値を指定するObject
        戻り値:
        int値
        例外:
        NullPointerException - keynullである場合
      • getInt

        public static int getInt​(Object key,
                                 Locale l)
        デフォルトから、指定されたロケールに適したint値を返します。 keyの値がIntegerでない場合や存在しない場合は、0が返されます。
        パラメータ:
        key - int値を指定するObject
        l - そのint値が適しているLocaleLocalenullの場合の処理方法については、UIDefaultsを参照
        戻り値:
        int値
        例外:
        NullPointerException - keynullである場合
        導入されたバージョン:
        1.4
      • getBoolean

        public static boolean getBoolean​(Object key)
        デフォルトから、キーの値に関連付けられたboolean値を返します。 キーが見つからない場合、またはキーがboolean値で表されていない場合、falseが返されます。
        パラメータ:
        key - 目的のboolean値のキーを指定するObject
        戻り値:
        キーに対応するboolean値
        例外:
        NullPointerException - keynullである場合
        導入されたバージョン:
        1.4
      • getBoolean

        public static boolean getBoolean​(Object key,
                                         Locale l)
        デフォルトから、キーの値および指定されたLocaleに関連付けられたboolean値を返します。 キーが見つからない場合、またはキーがboolean値で表されていない場合、falseが返されます。
        パラメータ:
        key - 目的のboolean値のキーを指定するObject
        l - そのboolean値が適しているLocaleLocalenullの場合の処理方法については、UIDefaultsを参照
        戻り値:
        キーに対応するboolean値
        例外:
        NullPointerException - keynullである場合
        導入されたバージョン:
        1.4
      • getInsets

        public static Insets getInsets​(Object key)
        デフォルトからInsetsオブジェクトを返します。 keyの値がInsetsでない場合、nullが返されます。
        パラメータ:
        key - Insetsオブジェクトを指定するObject
        戻り値:
        Insetsオブジェクト
        例外:
        NullPointerException - keynullである場合
      • getInsets

        public static Insets getInsets​(Object key,
                                       Locale l)
        デフォルトから、指定されたロケールに適したInsetsオブジェクトを返します。 keyの値がInsetsでない場合、nullが返されます。
        パラメータ:
        key - Insetsオブジェクトを指定するObject
        l - そのオブジェクトが適しているLocaleLocalenullの場合の処理方法については、UIDefaultsを参照
        戻り値:
        Insetsオブジェクト
        例外:
        NullPointerException - keynullである場合
        導入されたバージョン:
        1.4
      • getDimension

        public static Dimension getDimension​(Object key)
        デフォルトから寸法を返します。 keyの値がDimensionでない場合、nullが返されます。
        パラメータ:
        key - 寸法オブジェクトを指定するObject
        戻り値:
        Dimensionオブジェクト
        例外:
        NullPointerException - keynullである場合
      • getDimension

        public static Dimension getDimension​(Object key,
                                             Locale l)
        デフォルトから、指定されたロケールに適した寸法を返します。 keyの値がDimensionでない場合、nullが返されます。
        パラメータ:
        key - 寸法オブジェクトを指定するObject
        l - そのオブジェクトが適しているLocaleLocalenullの場合の処理方法については、UIDefaultsを参照
        戻り値:
        Dimensionオブジェクト
        例外:
        NullPointerException - keynullである場合
        導入されたバージョン:
        1.4
      • get

        public static Object get​(Object key)
        デフォルトからオブジェクトを返します。
        パラメータ:
        key - 目的のオブジェクトを指定するObject
        戻り値:
        Object
        例外:
        NullPointerException - keynullである場合
      • get

        public static Object get​(Object key,
                                 Locale l)
        デフォルトから、指定されたロケールに適したオブジェクトを返します。
        パラメータ:
        key - 目的のオブジェクトを指定するObject
        l - そのオブジェクトが適しているLocaleLocalenullの場合の処理方法については、UIDefaultsを参照
        戻り値:
        Object
        例外:
        NullPointerException - keynullである場合
        導入されたバージョン:
        1.4
      • put

        public static Object put​(Object key,
                                 Object value)
        開発者のデフォルトにオブジェクトを格納します。 これはgetDefaults().put(key, value)のカバー・メソッドです。 このメソッドは、開発者のデフォルトのみに影響を及ぼします。システムのデフォルトやLook & Feelのデフォルトに影響はありません。
        パラメータ:
        key - 検索キーを指定するObject
        value - 格納するObjectnullの場合の処理方法についてはUIDefaultsを参照
        戻り値:
        UIDefaults.put(java.lang.Object, java.lang.Object)によって返されたObject
        例外:
        NullPointerException - keynullである場合
        関連項目:
        UIDefaults.put(java.lang.Object, java.lang.Object)
      • getUI

        public static ComponentUI getUI​(JComponent target)
        targetに適したComponentUI実装を返します。 通常これは、getDefaults().getUI(target)のカバー・メソッドです。 しかし、補助的なLook & Feelがインストールされている場合、このメソッドは、まず多重化したLook & Feelのデフォルト上でgetUI(target)を呼び出し、non-nullの値だった場合はその値を返します。
        パラメータ:
        target - ComponentUIを返されるJComponent
        戻り値:
        targetComponentUIオブジェクト
        例外:
        NullPointerException - targetnullである場合
        関連項目:
        UIDefaults.getUI(javax.swing.JComponent)
      • getLookAndFeelDefaults

        public static UIDefaults getLookAndFeelDefaults​()
        現在のLook & Feelがインストールされたとき取得された、このLook & FeelのUIDefaultsを返します。

        通常、開発者は、getDefaults()から返されるUIDefaultsを使用してください。 現在のLook & Feelは、特定の値の存在を求める可能性があります。このため、このメソッドから返されるUIDefaultsを変更すると、予期しない結果になる可能性があります。

        戻り値:
        現在のLook & FeelのUIDefaults
        関連項目:
        getDefaults(), setLookAndFeel(LookAndFeel), LookAndFeel.getDefaults()
      • addAuxiliaryLookAndFeel

        public static void addAuxiliaryLookAndFeel​(LookAndFeel laf)
        LookAndFeelを補助的なLook & Feelのリストに追加します。 補助的なLook & Feelは、多重化UIの作成時にデフォルトのLookAndFeelクラスに加えて使用するコンポーネント・インスタンスのLookAndFeelクラスを、多重化したLook & Feelに通知します。 変更が有効になるのは、新しいUIクラスが作成されるときと、デフォルトのLook & Feelがコンポーネント・インスタンスで変更されるときだけです。

        これらはインストール済みのLook & Feelとは異なります。

        パラメータ:
        laf - LookAndFeelオブジェクト
        関連項目:
        removeAuxiliaryLookAndFeel(javax.swing.LookAndFeel), setLookAndFeel(javax.swing.LookAndFeel), getAuxiliaryLookAndFeels(), getInstalledLookAndFeels()
      • removeAuxiliaryLookAndFeel

        public static boolean removeAuxiliaryLookAndFeel​(LookAndFeel laf)
        LookAndFeelを補助的なLook & Feelのリストから削除します。 補助的なLook & Feelは、多重化UIの作成時にデフォルトのLookAndFeelクラスに加えて使用するコンポーネント・インスタンスのLookAndFeelクラスを、多重化したLook & Feelに通知します。 変更が有効になるのは、新しいUIクラスが作成されるときと、デフォルトのLook & Feelがコンポーネント・インスタンスで変更されるときだけです。

        これらはインストール済みのLook & Feelとは異なります。

        パラメータ:
        laf - 削除されるLookAndFeel
        戻り値:
        LookAndFeelがリストから削除された場合はtrue
        関連項目:
        removeAuxiliaryLookAndFeel(javax.swing.LookAndFeel), getAuxiliaryLookAndFeels(), setLookAndFeel(javax.swing.LookAndFeel), getInstalledLookAndFeels()
      • addPropertyChangeListener

        public static void addPropertyChangeListener​(PropertyChangeListener listener)
        リスナー・リストにPropertyChangeListenerを追加します。 リスナーは、すべてのプロパティに対して登録されます。
        パラメータ:
        listener - 追加されるPropertyChangeListener
        関連項目:
        PropertyChangeSupport
      • removePropertyChangeListener

        public static void removePropertyChangeListener​(PropertyChangeListener listener)
        PropertyChangeListenerをリスナー・リストから削除します。 すべてのプロパティに登録されたPropertyChangeListenerを削除します。
        パラメータ:
        listener - 削除するPropertyChangeListener
        関連項目:
        PropertyChangeSupport
      • getPropertyChangeListeners

        public static PropertyChangeListener[] getPropertyChangeListeners​()
        addPropertyChangeListener()を使用してこのUIManagerに追加されているすべてのPropertyChangeListenerの配列を返します。
        戻り値:
        追加されたすべてのPropertyChangeListener。リスナーが追加されていない場合は空の配列
        導入されたバージョン:
        1.4