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]
スポンサーリンク


