我有一个创建 JFrame 的类,并且需要在 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();
}
任何帮助都非常感谢,因为我现在一直在敲我的头。谢谢。