我正在Java Swing中使用JWindows来显示图像...我做了不同的JLabel包含我想要显示的图像..我删除以前添加的组件并添加新的组件以显示在同一个JWindow上..问题如下..
代码在没有睡眠功能的情况下完美运行。事件完成后,我可以在不同的窗口或同一个窗口上显示所有图像。但是当我使用睡眠时,在此期间根本没有显示...
有没有办法像幻灯片一样对图像实施延迟,并在延迟之前绘制图像?
getContentPane().remove(startLabel);
getContentPane().add(recordLabel1, "Center");
setVisible(true);
try {
Thread.sleep(500);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
getContentPane().remove(recordLabel1);
getContentPane().add(recordLabel2, "Center");
try {
Thread.sleep(500);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
getContentPane().remove(recordLabel2);
getContentPane().add(recordLabel3, "Center");
try {
Thread.sleep(500);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
getContentPane().remove(recordLabel3);
getContentPane().add(recordLabel4, "Center");
try {
Thread.sleep(500);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
getContentPane().remove(recordLabel4);
getContentPane().add(pausedLabel, "Center");
setVisible(false);
答案 0 :(得分:8)
现在是使用Swing Timers的好时机。
你应该:
您需要的只是课程中的额外成员,用于存储您当前正在显示的图片编号。当计时器触发时,使用该成员从窗格中删除当前项目,增加它(以您拥有的元素总数为模),然后插入新项目。