虽然循环使applet白屏并且没有响应

时间:2013-05-04 00:07:40

标签: java loops while-loop

这是我的循环代码(这是与我的循环相关的唯一代码):

while(true)
    {
        try {
            Thread.sleep(20);
            System.out.println("1");
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }           
    }

当我启动小程序时,它会出现白屏,除非我按下eclipse中的“终止”按钮,否则我无法关闭它。

3 个答案:

答案 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() {
public void run() {
while (condition) {
//code here
}
}
}
然后{app}启动方法中的gameThread.start()和applet停止方法中的gameThread.join()