Posted on 2008-06-05 20:23
kooyee 閱讀(874)
評論(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調用通用的外觀,適合任何系統。
若使用getSystemLookAndFeelClassName則根據本地的系統使用外觀, 如果要指定使用一種外觀則帶入具體的外觀的類的名字。例如,使用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
文件來設置 swing.laf
屬性. 這個文件一般位于JRE的lib文件夾下
在
Swing properties文件中加入一行 swing.laf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel
參考:
setLookAndFeel的參數可以是:
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自動調用默認的metal外觀。所以當使用UIManager.getSystemLookAndFeelClassName()
時, 如果沒有根據本地系統調用相應的外觀,而是顯示默認的metal外觀。這個多半是由于沒有找到相應的外觀class而導致的,這就需要把更多相應的外觀class加入到應用中
如果在運行applet時提示‘安裝plugin’, 是由于jsp tag中jreversion的值設置問題(瀏覽器無法調用相應的版本)。比如把jreversion="1.6.0" 改為jreversion="1.6" 可以解決問題。jreversion="1.6"表示為所有1.6的版本, 1.6.0是具體的一個版本。所以當瀏覽器使用別的1.6版本的jre,會與jreversion="1.6.0"沖突。
在Linux下使用getSystemLookAndFeelClassName時, 使用了GNOME才能自動調用GTK外觀。其他的return metal外觀。SUSE中在‘more application‘中打開的FF才能正確的調用GTK外觀(可能是SUSE的bug)。