我想用间隔时间100毫秒显示一些图像,但是当我将它们显示在屏幕上时,它们中的一些是可见的,有些不是(随机顺序)。 这里是我的代码部分:以100毫秒的间隔在java中显示图像
panel = new ShowImage(Integer.toString(ImageRand+1),kind); // show random images
//panel.setIgnoreRepaint(false);
frame.getContentPane().add(panel);
frame.validate();
while(panel.isShowing()!=true);
panel.setVisible(true);
start=System.currentTimeMillis();
while(System.currentTimeMillis()-start < 100);
即使我已经使用nanoTime()函数,但它不能正常工作
编辑:
之前,我添加此两行:
while(panel.isShowing()!= true);
panel.setVisible(true);
我的代码看起来是这样的:
面板=新ShowImage(Integer.toString(ImageRand + 1),类);
frame.getContentPane().add(panel);
frame.validate();
start=System.currentTimeMillis();
while(System.currentTimeMillis()-start < 100);
就意味着只在屏幕上显示的图像,并且然后等待100毫秒,并且再次运行该代码(I在主节目的开始加载每个图像仅一次) 和我的问题是:在间隔之间的图像是不相等的 然后我add while(panel.isShowing()!= true);确保我的面板在屏幕上(与此同时,我可以发现,我等待100毫秒之前,面板上屏幕),但我有同样的问题
你真的打算在这样的循环中进行紧缩吗?还是这个伪代码? – 2012-08-05 17:38:39
为了使您的应用程序使用的CPU少得多,请使用Thread.sleep(100)而不是空的while循环。 – Vulcan 2012-08-05 17:43:30
使用一个间隔而不是睡眠的计时器... http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html – Adam 2012-08-05 18:16:32