这是我的循环代码(这是与我的循环相关的唯一代码):
while(true)
{
try {
Thread.sleep(20);
System.out.println("1");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
当我启动小程序时,它会出现白屏,除非我按下eclipse中的“终止”按钮,否则我无法关闭它。
答案 0 :(得分:3)
您使用无限while
循环阻止UI线程。你没有说你是在使用AWT还是Swing applet,无论哪种方式结果都是一样的。如果您使用的是Swing小程序,请使用Swing Timer。如果您正在使用旧的重量级AWT,请将其转换为Swing并遵循之前的建议。
答案 1 :(得分:0)
如上所述,你创建了一个无限循环:
while(true){
//something
}
没有休息;那么为什么或者什么应该停止循环除了抛出的异常?
要查看何时抛出InterruptedException,您应该阅读JavaDoc: http://docs.oracle.com/javase/7/docs/api/java/lang/InterruptedException.html
答案 2 :(得分:0)
你正在使用小程序EDT。你需要在另一个线程中运行你的循环。尝试添加Thread gameThread;
作为变量并使用
gameThread = new Thread() {
然后{app}启动方法中的
public void run() {
while (condition) {
//code here
}
}
}gameThread.start()
和applet停止方法中的gameThread.join()
。