如前所述,我正在使用的两个不同版本的代码,第一个工作正常,没有任何问题,第二个,唯一没有发生的是图像的更新(已通过逐步调试验证并调试打印以手动验证所有值和条件)
/* properly updates dice[] JLabel icons */
for (int i = 0; i < game.getToRoll(); i ++){
//sets rolled dice to actual values
dice[i].setIcon(dicePic[(game.getDice(i).getFaceValue())]);
}
/* loops properly, generates properly, does not update icons */
Die x = new Die();
int animate = 0;
while(animate < 10){
for (int i = 0; i < 6; i++ ){
x.roll();
if (i <= (game.getToRoll() -1))
dice[i].setIcon(dicePic[x.getFaceValue()]);
else
dice[i].setIcon(dicePic[0]);
}
panel[1].repaint();
panel[1].validate();
animate++;
try{
Thread.sleep(100);
}
catch(Exception e){
e.printStackTrace();
}
}
我一直在寻找导致问题的某种想法,除了“有时重绘和验证会解决不起作用的问题”之外,我没有遇到任何其他问题。
如上所述,调试给了我完全按预期工作的代码流的绿灯,在第二个示例中只是空图像图标。