У меня возникли проблемы с заданием, над которым я работаю.
Часть этого заключается в том, чтобы "оживить" бросок пары кубиков.У меня есть 6 JPEG, по одной с каждой из сторон.Вместо того, чтобы катиться, я хочу, чтобы он перебирал изображения.Я пытаюсь использовать setIcon снова и снова в цикле и использовать Thread.sleep () для задержки.Это, между прочим, все происходит, когда пользователь нажимает кнопку (событие).Вместо того, чтобы отображать изображения, он ждет правильное количество времени и отображает только последнее изображение.Вот функция, которую я вызываю для выполнения цикла:
private void aniRoll(){
for(int i = 0; i < 10; i++){
die1Disp.setIcon(new javax.swing.ImageIcon(getClass().getResource("/face1.jpg")));
try{
Thread.sleep(1000); // Sleep for 1 sec
}
catch(InterruptedException e){}
die1Disp.setIcon(new javax.swing.ImageIcon(getClass().getResource("/face2.jpg")));
try{
Thread.sleep(1000);
}
catch(InterruptedException e){}
die1Disp.setIcon(new javax.swing.ImageIcon(getClass().getResource("/face3.jpg")));
try{
Thread.sleep(1000);
}
catch(InterruptedException e){}
die1Disp.setIcon(new javax.swing.ImageIcon(getClass().getResource("/face4.jpg")));
try{
Thread.sleep(1000);
}
catch(InterruptedException e){}
die1Disp.setIcon(new javax.swing.ImageIcon(getClass().getResource("/face5.jpg")));
try{
Thread.sleep(1000);
}
catch(InterruptedException e){}
die1Disp.setIcon(new javax.swing.ImageIcon(getClass().getResource("/face6.jpg")));
try{
Thread.sleep(1000);
}
catch(InterruptedException e){}
}
}
die1Disp - это имя моего JLabel, aniRoll () - функция, которую я вызываю для выполнения цикла(сделано конфиденциально, потому что я не хочу, чтобы что-то вне моего класса GUI вызывало это), а faceX.jpg - мои изображения.
Что я не могу понять, так это то, где я помещаю Thread.sleep (), он сначала задерживает программу, а затем отображает только последнее изображение.Например:
die1Disp.setIcon(new javax.swing.ImageIcon(getClass().getResource("/face1.jpg")));
die1Disp.setIcon(new javax.swing.ImageIcon(getClass().getResource("/face2.jpg")));
//bunch of extra code
try{
Thread.sleep(10000); // Sleep for 10 sec
}
catch(InterruptedException e){}
Это будет ждать 10 секунд, а затем отображать только второе изображение.Он не быстро перелистывает первое, отображает второе, затем ждет, он ждет и отображает только второе изображение.Эта причуда действительно сбила меня с толку, и я не уверен, как это исправить.В качестве редактора я использую среду IDE NetBeans 7.01, а для базовой компоновки и генерации кода я использую палитру компонентов.
- Спасибо