kooyee ‘s blog

          開源軟件, 眾人努力的結晶, 全人類的共同財富
          posts - 103, comments - 55, trackbacks - 0, articles - 66
             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          【Swing】設置applet程序的界面外觀

          Posted on 2008-06-05 20:23 kooyee 閱讀(878) 評論(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)。

          主站蜘蛛池模板: 石家庄市| 阿拉善右旗| 玛纳斯县| 枞阳县| 陆川县| 石林| 阳曲县| 内乡县| 贵州省| 沧源| 堆龙德庆县| 平江县| 乡城县| 平昌县| 揭西县| 海南省| 屏南县| 封开县| 漳浦县| 乐亭县| 五峰| 杂多县| 庆云县| 麻阳| 湘乡市| 化隆| 长垣县| 玉环县| 望谟县| 郯城县| 潞西市| 门头沟区| 平果县| 城固县| 建平县| 信丰县| 曲阜市| 凯里市| 大姚县| 商都县| 安达市|