0
我有一个类创建一个JFrame,并且需要在JFrame中显示一个图像。图像必须每隔几秒旋转一次。更新JPanel/JFrame不工作
我试过在JFrame和JPanel上使用repaint(),revalidate()和validate(),并且都没有任何效果。以下是我目前的代码来更新JFrame/JPanel。此代码将等待4秒钟,然后显示第四个图像,但我希望它每秒更新一次新图像。
public void startSlideshow(){
int i = 0;
Long oldTime = System.currentTimeMillis();
do {
Long currentTime = System.currentTimeMillis();
if(currentTime - oldTime >= 1000) {
img = new JLabel(new ImageIcon("Albums/" + album + "/" + imageNames.get(i)));
panel.removeAll();
panel.setBackground(Color.BLACK);
panel.add(img);
panel.revalidate();
panel.repaint();
i++;
oldTime = System.currentTimeMillis(); // reset reference time
}
} while(i<imageNames.size());
panel.removeAll();
panel.setBackground(Color.BLACK);
panel.add(img);
panel.getRootPane().revalidate();
panel.repaint();
}
任何帮助是非常感谢,因为我一直在敲我的头一阵子。谢谢。
即使这样做,它会是一个灾难,因为你正在使用一个忙等待循环。 D: – Boann
@Boann这不起作用,在这次灾难发生之前我已经尝试过10个不同的版本。谢谢。 – user2907236
你在哪里管理1秒等待? –