我想创建窗口,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可能正在改进我的代码吗?
我该如何避免这种情况? 也许我做错了?
我将非常感谢任何线索:)
答案 0 :(得分:1)
你的问题可能是for循环中的这一行:
pane.img=returnedArray.get(2).getFrontImage();
总是选择相同的图像?除此之外,您应该使用注释中指出的Timer而不是使用Thread.sleep