JProgressBar Динамическое изменение цвета бара
я используюJProgressBar
компонент вместе с настройками Nimbus UI по умолчанию. Проблема в том, что когда я хочу вручную изменить каждый индикаторЦвет бара, я используюBasicProgressBarUI
установивJProgressBar.setUI()
функция. Это создает больше проблем, потому что я хотел бы просто изменить цвет панели, и кажется, что я теряю внешний вид jprogressbar по умолчанию (Border, backgroundcolor исчезает).
Так что я могу установитьUIDefaults
Nimbus ProgressBar, когда код инициализируется. Оно работает.
Но я хочу изменить каждый индикаторЦвет полоски динамически.
Есть ли другой способ изменить цвет бара?JProgressBar
public class ProgressGenerator extends JFrame {
protected int minValue = 0;
protected int maxValue = 100;
protected int counter = 0;
protected JProgressBar progressBar;
public ProgressGenerator() {
super("JProgressBar Demo");
setSize(300, 100);
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (InstantiationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalAccessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (UnsupportedLookAndFeelException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
progressBar = new JProgressBar();
progressBar.setMinimum(minValue);
progressBar.setMaximum(maxValue);
progressBar.setStringPainted(true);
progressBar.setForeground(Color.GREEN);
JButton start = new JButton("Start");
start.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Thread runner = new Thread() {
public void run() {
counter = minValue;
while (counter