Что я пытаюсь сделать:
Я хотел бы сделать JFrame
с несколькими индикаторами прогресса (JProgressBar
) с разными скоростями.
Проблема
Когда значение одного индикатора выполнения равно 25, 50 или 75, предполагается, что текущий индикатор выполнения будет остановлен на 2 секунды.Однако на данный момент Thread.sleep()
остановит все приложение.
Timer timer;
ActionListener listener;
listener = new ActionListener() {
int counter = 0;
int delta = 1;
int min = 0;
int max = 100;
public void actionPerformed(ActionEvent ae) {
counter += delta;
if (jRadioButton1.isSelected()) {
if (counter < min || counter > max) {
delta *= -1;
}
counter = Math.min(max, Math.max(min, counter));
jjProgressBar.setValue(counter);
jjProgressBar2.setValue(counter);
jjProgressBar3.setValue(counter);
if (jProgressBar.getValue() == 25 || jProgressBar.getValue() == 0 || jProgressBar.getValue() == 50 || jProgressBar.getValue() == 75 || jProgressBar.getValue() == 100) {
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(Sim1.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
};
timer = new Timer(100, listener);
timer.start();