Java Swing サンプル集

Top Page
* Look & Feelの変更
-
・説明
-

外観(Look & Feel)の変更はUIManagerから行います。
その後、SwingUtilities.updateComponentTreeUI()を実行することにより変更が反映されます。

また、SwingでサポートしているLook & Feelには(開発中も含め)以下があります。
  • Metal
  • Motif
  • Windows
  • WindowsClassic
  • Mac
  • GTK
  • Nimbus

これらはそれぞれ以下のクラスに対応しています。
  • 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
  • com.sun.java.swing.plaf.mac.MacLookAndFeel
  • com.sun.java.swing.plaf.gtk.GTKLookAndFeel
  • com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel
上記クラス名をUIManager.setLookAndFeel()のパラメータに指定します。
app
サンプルソース : src_look_and_feel.zip
サンプルアプリ : sample_look_and_feel.jar
・コード例
-

    try {
        UIManager
            .setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
    } catch (ClassNotFoundException e) {
        //
    } catch (InstantiationException e) {
        //
    } catch (IllegalAccessException e) {
        //
    } catch (UnsupportedLookAndFeelException e) {
        //
    }
    SwingUtilities.updateComponentTreeUI(this);
・実行プラットフォームのLook & Feelに変更する場合
-
現在実行しているOSのLook & Feelに変更するためには、以下のように行います。
    try {
        UIManager
            .setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (ClassNotFoundException e) {
        //
    } catch (InstantiationException e) {
        //
    } catch (IllegalAccessException e) {
        //
    } catch (UnsupportedLookAndFeelException e) {
        //
    }
    SwingUtilities.updateComponentTreeUI(this);
・サポートしているLook & Feelのリストを取得
-
以下の方法で、実行中のプラットフォームでサポートしているLook & Feelのリストを取得することが出来ます。
    // インストール済みのL&F情報を取得
    UIManager.LookAndFeelInfo[] info = UIManager.getInstalledLookAndFeels();
    String[] ret = new String[info.length];
    
    // インストール済みのL&Fクラス名を取得
    for(int i = 0; i < info.length; i++) {
        ret[i] = info[i].getClassName();
    }
・特定のLook & Feelがサポートされているか調べる
-
名称を指定して特定のLook & Feelが現在のプラットフォームでサポートされているかどうか調べるには以下のように行います。
下記CLASSNAMEにはパッケージも含めたクラス名を指定します。
(Motifであれば、"com.sun.java.swing.plaf.motif.MotifLookAndFeel" を指定。)
    try {
        LookAndFeel laf = (LookAndFeel)Class.forName(CLASSNAME).newInstance();
        return laf.isSupportedLookAndFeel();    
    } catch (InstantiationException e1) {
        e1.printStackTrace();
    } catch (IllegalAccessException e2) {
        e2.printStackTrace();
    } catch (ClassNotFoundException e3) {
        e3.printStackTrace();
    }
・フリーのLook & Feel
-

以下ではフリーのLook & Feelを配布しています。
http://www.javootoo.com/index.html


inserted by FC2 system