Swing - Nimbus Look and Feel Setting

來源:互聯網
上載者:User

標籤:des   style   blog   http   color   java   使用   io   

Swing - Nimbus Look and Feel Setting一、Java 6和Java 7中設定Nimbus風格

在Java 6中Swing新增了一種介面風格-Nimbus,類名為com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel。

在Java 7更新之後,Nimbus風格的實作類別移動到了javax.swing.plaf.nimbus.NimbusLookAndFeel,同時為了向後相容,com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel純粹直接繼承自javax.swing.plaf.nimbus.NimbusLookAndFeel。

在正常情況下,我們可以使用以下方式來設定Nimbus風格(官方寫法,這種寫法在沒有Nimbus支援的Java 5中就不會設定Nimbus,不至於引起報錯):

try {    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {        if ("Nimbus".equals(info.getName())) {            UIManager.setLookAndFeel(info.getClassName());            break;        }    }} catch (Exception e) {    // If Nimbus is not available, you can set the GUI to another look and feel.}
二、Nimbus修改預設設定的Bug和改進方案

這個設定本沒有任何問題,但是當我們需要修改Nimbus的一些預設設定時,比如將整體風格的背景色設定為白色,我們會首先想到使用UIManger.put("background", Color.WHITE),但是很遺憾Nimbus對這種常規設定的支援有缺陷——不響應。經過四處查詢解決方案,發現通過以下方式可以成功的設定Nimbus的一些設定(這種寫法在Java 5中會報錯,找不到類):

UIManager.setLookAndFeel(new NimbusLookAndFeel() {    @Override    public UIDefaults getDefaults() {        UIDefaults defaults = super.getDefaults();        defaults.put("background", Color.WHITE);        defaults.put("ScrollBar.width", 10);        return defaults;    }});

將程式碼片段2放在一個新的類的一個方法中,並將程式碼片段1中的行UIManager.setLookAndFeel(info.getClassName());替換為這個新方法,在Java 6中編譯後,在Java 5中也可以運行,不會設定Nimbus風格也不會報錯。

三、Desktop和Applet模式下的設定

將上面的設定Nimbus風格的代碼放在一個方法中,SwingTool.setNimbusLookAndFeel()。

在Desktop模式下,在main()方法的第一句話加入:

SwingTool.setNimbusLookAndFeel()

而在Applet的啟動方法init()的最後位置加上以下代碼:

SwingTool.setNimbusLookAndFeel();SwingUtilities.updateComponentTreeUI(this);

請注意,Applet模式下一定要將上述代碼放在init()方法的最後,放在方法開頭是不生效的

複製去Google翻譯翻譯結果SwingTool.setNimbusLookAndFeel()

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.