У меня есть кнопка, и когда я нажму на нее, она запустит progressbar
. По завершении один раз, я хочу, чтобы индикатор прогресса был сброшен, и если я снова нажму кнопку, он начнет новый.
Вот мой код:Как я могу сбросить JProgressBar в java?
else if (action == detectButton) {
// pb.setVisible(true);
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
pb.setValue(0);
pb.repaint();
}
});
for (int i = 1; i <= 10; i++) {
final int val = i;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
pb.setValue(val);
pb.repaint();
try {
java.lang.Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
Теперь проблема заключается в том, что, когда я первый запустить он работает нормально, но во второй попытке он не сбросить прогрессбар 0. Как сделать это на самом деле ??
EDIT:Я перекраску Progressbar каждый раз, но я видел, что она не достаточно гладкой, чтобы показать, что 10% произошло, то 20% ..
Что ** ** это происходит со второй попытки? –
как только индикатор прогресса завершится один раз, тогда, если я нажму на него второй раз, тогда прогресс останется полным. Если он не сбрасывается –
Можете добавить еще один код в свой вопрос? Вы отправили runnable, сбрасывает индикатор выполнения в своем потоке и ждет полные две секунды, между тем for-loop запускает 10 новых runnables –