无法让我的run()方法循环

时间:2014-05-09 15:52:14

标签: java eclipse multithreading applet

我正在使用Eclipse IDE, Java项目,我正在扩展superclass Applet并且无法完全激活Run方法,这里是源代码:

public void run() {

    while (true) {

        System.out.println("Help..");

        //Updates the character
        CHAR1.update();

        //Updates the background
        bg1.update();
        bg2.update();

        repaint();

        try {

            Thread.sleep(17);

        } catch (InterruptedException e) {

            e.printStackTrace();

        }
    }
}

我似乎无法更改任何信息或打印出“帮助...”#34;为什么运行方法不循环?

我一直坐在这里将println语句放在各处进行测试以查看响应的内容,这是迄今为止我唯一能找到的错误。它没有说出任何错误,它只是没有循环该方法。 (我试过@Override,但它说了一些关于注释的内容并且是一个错误,我用@Override运行它并且没有任何改变。)

感谢任何帮助。

编辑:我编写了用于声明线程的代码,但一定不能保存它。我怎么会忘记?!非常感谢。这是我的第一个Applet,所以我还没有完全理解像Thread这样的东西,试图抓住它。谢啦。我花了好几个小时试图解决这个问题,只是因为我忘了制作线程e.e

2 个答案:

答案 0 :(得分:0)

重要的是调用Thread对象的.start()方法,而不是.run()方法,即使你的循环是在那里实现的。

如果你直接调用.run()方法,那么该方法会被执行,但是在调用者的同一个线程中,而不是在一个独立的线程中:我猜可能调用者Thread是GUI线程,所以你的循环冻结GUI并且实际上不显示更新。

答案 1 :(得分:0)

您创建了多少个课程?如果你只为applet和thread使用一个类,你必须声明这样的类:

Public class ClsName extends Applet implements runnable { }

您必须分享您的代码以获得完美的解决方案。

相关问题