【问题标题】:how to make Indeterminate progressbar look nicely?如何使不确定的进度条看起来不错?
【发布时间】:2013-05-13 21:28:51
【问题描述】:

我正在使用 nimbus lookAndFill

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

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

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

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

【问题讨论】:

  • 您可以编写自己的 UI 委托

标签: java swing progress-bar jprogressbar nimbus


【解决方案1】:

有一个更简单的解决方案。您可以在设置 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());
}

【讨论】:

  • 我找到了最佳解决方案,基于您的! //设置 NimbusLookAndFeel
    UIManager.setLookAndFeel(new NimbusLookAndFeel()); //设置其他进度条l&f
    processingJProgressBar.**setUI**(new WebProgressBarUI());
【解决方案2】:

【讨论】:

  • 只是想保留这个 l&F,但使用另一个作为进度条
  • 菲利普的回答会做,我没想到,它也是一个更简单的解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-05
  • 2014-11-29
相关资源
最近更新 更多