2013-05-13 2 views
1

Я использую нимб lookAndFillКак сделать Indeterminate progressbar хорошо выглядеть?

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

и мой неопределенную JProgressBar выглядит следующим образом:

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

я могу сделать это выглядит лучше?

+1

Вы можете написать свой собственный делегат UI – MadProgrammer

ответ

2

Есть более легкое решение. Вы можете просто скопировать настройки пользовательского интерфейса индикатора выполнения, прежде чем настраивать внешний вид nimbus и затем установить их обратно. Затем вы получаете 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()); 
} 
+0

я нашел лучшее решение, основанное на вашем! * // установка NimbusLookAndFeel *
UIManager.setLookAndFeel (новый NimbusLookAndFeel()); * // установка другой индикатор выполнения l & f *
обработкаJProgressBar. ** комплектUI ** (новый WebProgressBarUI()); – Adir

2

Вы можете либо use a different look and fill, либо create your own component.

+0

Просто хотел, чтобы этот л & F, но и использовать другой для прогресс бар – Adir

+0

ответ Филипп будет делать это, я не думаю о том, что его гораздо более простое решение слишком –