0

我想创建一个窗口,在 3 秒后图像会自动更改。这是我的代码:

JFrame frame=new JFrame();
pan pane= new pan();
frame.add(pane);
frame.setBounds(100, 100, 500, 500);
frame.setVisible(true);



    try{
        for(int i=0;i<returnedArray.size();i++){                
            pane.img=returnedArray.get(i).getFrontImage();
            Thread.sleep(3000);     
            pane.repaint();
        }
    }catch(InterruptedException e){
        e.printStackTrace();
    }


class pan extends JPanel{
    public Image img; 

     public void paint(Graphics g) {
          g.drawImage( img, 0, 0, null);
     }
}

...但我一直看到最后一张图片:(

我认为也许 JVM 正在改进我的代码?

我怎样才能避免这种情况?也许我做错了?

我将非常感谢任何线索:)

4

1 回答 1

1

您的问题可能是您的 for 循环中的这一行:

pane.img=returnedArray.get(2).getFrontImage();

哪个总是选择相同的图像?除此之外,您可能应该使用注释中指出的 Timer 而不是使用 Thread.sleep

于 2013-06-10T20:17:49.793 回答