Posted on 2008-06-05 20:23
kooyee 閱讀(873)
評論(0) 編輯 收藏 所屬分類:
Swing/Applet
自從JDK1.4版本后Swing程序就支持用戶自定義外觀,以后就不用再使用java原始的‘丑陋’外觀。下面我們就來看一下如何讓程序使用我們熟悉的XP外觀。
第一種方法:
在code中加入
UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName());
例如
public static void main(String[] args)


{
try


{
UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName());

} catch (Exception e)
{ }
new SwingApplication(); //Create and show the GUI.
}
getCrossPlatformLookAndFeelClassName調(diào)用通用的外觀,適合任何系統(tǒng)。
若使用getSystemLookAndFeelClassName則根據(jù)本地的系統(tǒng)使用外觀, 如果要指定使用一種外觀則帶入具體的外觀的類的名字。例如,使用GTK+的外觀的代碼
UIManager.setLookAndFeel( "com.sun.java.swing.plaf.gtk.GTKLookAndFeel" );
第二種方法:
在命令行中定義 swing.laf
屬性. 例如: java -Dswing.laf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel MyApp java -Dswing.laf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel MyApp
第三種方法:
使用 swing.properties
文件來設(shè)置 swing.laf
屬性. 這個(gè)文件一般位于JRE的lib文件夾下
在
Swing properties文件中加入一行 swing.laf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel
參考:
setLookAndFeel的參數(shù)可以是:
UIManager.getCrossPlatformLookAndFeelClassName()
- Returns the look and feel that works on all platforms &151; the Java look and feel.
UIManager.getSystemLookAndFeelClassName()
- Specifies the look and feel for the current platform. On Microsoft Windows platforms, this specifies the Windows look and feel. On Mac OS platforms, this specifies the Mac OS look and feel. On other Unix platforms, such as Solaris or Linux, this returns the CDE/Motif look and feel.
"com.sun.java.swing.plaf.gtk.GTKLookAndFeel
- Specifies the GTK+ look and feel. Introduced in release 1.4.2. You can specify the particular theme either using a resource file otherIcon (outside of the tutorial) or the
gtkthemefile
command-line parameter. Here is an example: java -Dswing.gtkthemefile=customTheme/gtkrc Application
"javax.swing.plaf.metal.MetalLookAndFeel
- Specifies the Java look and feel. (The codename for this look and feel was Metal.)
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel
- Specifies the Windows look and feel. Currently, you can use this look and feel only on Microsoft Windows systems.
Version Note: As of release 1.4.2, WindowsLookAndFeel
has been updated to mimic the Windows XP look and feel when running on the Windows XP platform.
"com.sun.java.swing.plaf.motif.MotifLookAndFeel
- Specifies the CDE/Motif look and feel. This look and feel can be used on any platform.
如果指定的class不存在,swing自動(dòng)調(diào)用默認(rèn)的metal外觀。所以當(dāng)使用UIManager.getSystemLookAndFeelClassName()
時(shí), 如果沒有根據(jù)本地系統(tǒng)調(diào)用相應(yīng)的外觀,而是顯示默認(rèn)的metal外觀。這個(gè)多半是由于沒有找到相應(yīng)的外觀class而導(dǎo)致的,這就需要把更多相應(yīng)的外觀class加入到應(yīng)用中
如果在運(yùn)行applet時(shí)提示‘安裝plugin’, 是由于jsp tag中jreversion的值設(shè)置問題(瀏覽器無法調(diào)用相應(yīng)的版本)。比如把jreversion="1.6.0" 改為jreversion="1.6" 可以解決問題。jreversion="1.6"表示為所有1.6的版本, 1.6.0是具體的一個(gè)版本。所以當(dāng)瀏覽器使用別的1.6版本的jre,會(huì)與jreversion="1.6.0"沖突。
在Linux下使用getSystemLookAndFeelClassName時(shí), 使用了GNOME才能自動(dòng)調(diào)用GTK外觀。其他的return metal外觀。SUSE中在‘more application‘中打開的FF才能正確的調(diào)用GTK外觀(可能是SUSE的bug)。