如何让Indeterminate进度条看起来很好看?

时间:2013-05-13 21:28:51

标签: java swing progress-bar jprogressbar nimbus

我正在使用nimbus lookAndFill

UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");

和我不确定的JProgressBar看起来像这样:

http://img15.imageshack.us/img15/9470/uglyprogress.jpg

我可以让它看起来更好吗?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

有一个更简单的解决方案。您可以在设置nimbus外观之前复制进度条UI默认值,然后再将其设置为。然后,您可以获得Nimbus的外观和感觉,但没有进度条样式。

// copy progress bar defaults
HashMap<Object, Object> progressDefaults = new HashMap<>();
for(Map.Entry<Object, Object> entry : UIManager.getDefaults().entrySet()){
    if(entry.getKey().getClass() == String.class && ((String)entry.getKey()).startsWith("ProgressBar")){
        progressDefaults.put(entry.getKey(), entry.getValue());
    }
}

// set nimbus
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");

// copy back progress bar defaults
for(Map.Entry<Object, Object> entry : progressDefaults.entrySet()){
    UIManager.getDefaults().put(entry.getKey(), entry.getValue());
}
相关问题