如前所述,我正在使用的两个不同版本的代码,第一个工作正常,没有任何问题,第二个,唯一没有发生的是图像的更新(已通过逐步调试验证并调试打印以手动验证所有值和条件)
            /* 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();
                    }
            }
我一直在寻找导致问题的某种想法,除了“有时重绘和验证会解决不起作用的问题”之外,我没有遇到任何其他问题。
如上所述,调试给了我完全按预期工作的代码流的绿灯,在第二个示例中只是空图像图标。