Я создаю анимацию, используя JLabel,
public void updateLabels() {
label.setIcon(new ImageIcon(new Paint().getScaledImage(paint[currentIndexLabel].imageCALA,300,300)));
label_1.setIcon(new ImageIcon(new Paint().getScaledImage(paint[currentIndexLabel].imageStates,300,300)));
label_2.setIcon(new ImageIcon(new Paint().getScaledImage(paint[currentIndexLabel].imageStrategies,300,300)));
label_3.setIcon(new ImageIcon(new Paint().getScaledImage(paint[currentIndexLabel].imagekD,300,300)));
currentIndexLabel++;
}
, и у меня есть кнопка, которая обновляет метки
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
while (currentIndexLabel != paint.length-1) {
updateLabels();
}
}
});
Но я не знаю, как ждать,скажем, например, 1000 мс, до следующего изменения.Когда я добавляю это:
try { Thread.sleep(1000); } catch (Exception e){}
в мой ActionListener:
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
while (currentIndexLabel!=paint.length-1) {
updateLabels();
try { Thread.sleep(1000); } catch (Exception e){}
}
}
});
это не работает.Это просто остановилось на некоторое время, и я не вижу изменений между первым и последним кадрами.Можно ли подождать 1000 мс без остановки программы?Когда я удаляю цикл while и пробую раздел и нажимаю кнопку, он меняется довольно хорошо ...
Как я могу это сделать?