Index > LookAndFeelを切替えるコード(Java)
Fri, May 11, 2007

LookAndFeelを切替えるコード(Java)

たびたび使うことになるコードなので記録。

デスクトップ向けのJavaアプリケーションを書く場合、たいていは ウインドウズ上で使われることが想定されるので、 ルックアンドフィールをWindowsにしておくのがよい。

{strong:Windows}にしておくと、ファイル選択ダイアログがネイティブなウインドウズと 同じになるのがうれしいです。 Metalに設定されている(つまりデフォルトのLaF)ファイルチューザーは正直いって、 使いにくいです。

LookAndFeelをWindows用に設定するコード

ChangeLookAndFeel.java

    public static void main(String[] s){
        UIManager.LookAndFeelInfo[] installedLafs = UIManager.getInstalledLookAndFeels();
        for(int i=0; i<installedLafs.length; i++){
            UIManager.LookAndFeelInfo info=installedLafs[i];
            if(info.getName().trim().equals("Windows")){
                try{
                    Class lnfClass = Class.forName(info.getClassName());
                    LookAndFeel laf = (LookAndFeel)(lnfClass.newInstance());
                    UIManager.setLookAndFeel(laf);
                }
                catch(Exception ex){}
            }
        }

        JFrame f=new MyFrame();
        //do something...
    }

どのようなルックアンドフィールがサポートされているか

ちなみに、以下のようなコードを実行してどのようなルックアンドフィールが使えるか 調べてみると、

WindowsXPの場合

Metal
CDE/Motif
Windows

Vine4.1にインストールしたJava2SE1.4.2の場合

Metal
CDE/Motif
GTK+

テストに使用したコード

DumpLookAndFeelInfo.java

import javax.swing.UIManager;

public class DumpLookAndFeelInfo{

    public static void main(String[] s){
        UIManager.LookAndFeelInfo[] installedLafs = UIManager.getInstalledLookAndFeels();
        for(int i=0; i<installedLafs.length; i++){
            UIManager.LookAndFeelInfo info=installedLafs[i];
            System.out.println(info.getName());
        }
    }
}
 Twitter
follow me on Twitter
 Categories