Fri, May 11, 2007
LookAndFeelを切替えるコード(Java)
たびたび使うことになるコードなので記録。
デスクトップ向けのJavaアプリケーションを書く場合、たいていは ウインドウズ上で使われることが想定されるので、 ルックアンドフィールをWindowsにしておくのがよい。
{strong:Windows}にしておくと、ファイル選択ダイアログがネイティブなウインドウズと 同じになるのがうれしいです。 Metalに設定されている(つまりデフォルトのLaF)ファイルチューザーは正直いって、 使いにくいです。
LookAndFeelをWindows用に設定するコード
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+
テストに使用したコード
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());
}
}
}