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()のパラメータに指定します。
|
|
|
|
コード例
|
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
|
|