Java Swing のLook&FeelをWIndows風にする方法
Java Swingのデフォルトの見た目ってあまりきれいではありません。MetalっていうUIらしいのですが、これが嫌でJavaから遠のく人もいるみたいです。僕も最初はウゲッ!って思いましたもん。
でも、Javaには見た目をWindows風にすることができるんです。Javaの初心者本こそまずはここを紹介すべきだと思うんですよね。
[ad#top-1]
SwingのデフォルトのLook&Feel
Swingのデフォルトの見た目がこちら。たしかにメタルっぽい。
久々にJavaを使ってみたのですが、以前に比べてフォントはきれいになりましたね。以前の(Java1.2くらいの)デフォルトのフォントってホントに汚かったですもん(笑)。
Windows風にするとこうなります
Swingには見た目を変える機能があります。Windows風にすると以下のように、いつものWindowsソフトの外観になります。
ちなみに、昔のUnix(X Window)風にすることもできます。Motifといいますが、見た目も悪いし使い勝手も悪いので、あまりお薦めできません(笑)。
どうやってLook&Feelを変えるのか
JavaにはUIManagerというクラスがあって、その中にsetLookAndFeelというメソッドがあります。こいつで見た目を変えることができるわけです。
基本構文はこちら
実際に使うときは、例外処理しなければなりません。
全体のソースコードは以下の通りとなります。LookAndFeelChangeメソッドにまとめて引数で切り替えられるようにしております。”windows”を引数にするとWindowsアプリのような外観になります。
import java.awt.*; import javax.swing.*; public class Test extends JFrame{ protected Container pane; public static void main(String[] args){ Test f = new Test("Test"); f.setLocationRelativeTo(null); f.setVisible(true); } Test(String t){ super(t); setSize(400, 300); pane = getContentPane(); pane.setLayout(new FlowLayout()); LookAndFeelChange("windows"); JTextField text = new JTextField(25); pane.add(text); JButton btn = new JButton("Submit"); pane.add(btn); String[] list = {"ComboboxData1", "ComboboxData2", "ComboboxData3", "ComboboxData4"}; JComboBox cmb = new JComboBox(list); pane.add(cmb); } private void LookAndFeelChange(String look){ try{ if(look.equals("windows")){ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }else if(look.equals("motif")){ UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel"); }else{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.metal.MetalLookAndFeel"); } }catch(UnsupportedLookAndFeelException e){ }catch(ClassNotFoundException e){ }catch(InstantiationException e){ }catch(IllegalAccessException e){ } } }
.
[ad#ad-1]
スポンサーリンク