Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Runnable中的run()方法不起作用_Java_Android_Runnable - Fatal编程技术网

Java Runnable中的run()方法不起作用

Java Runnable中的run()方法不起作用,java,android,runnable,Java,Android,Runnable,我正在尝试建立一个游戏,我在一个教程的帮助下做这件事。我的问题是,下面显示的run()方法不起作用。我尝试了本教程的示例代码,它与run()方法完全相同,并且可以正常工作。 在我的代码中,从未调用run(),我不知道为什么 package thisproject; public class StartingClass extends Applet implements Runnable, KeyListener, MouseListener { private Buil

我正在尝试建立一个游戏,我在一个教程的帮助下做这件事。我的问题是,下面显示的run()方法不起作用。我尝试了本教程的示例代码,它与run()方法完全相同,并且可以正常工作。 在我的代码中,从未调用run(),我不知道为什么

package thisproject;

public class StartingClass extends Applet implements Runnable, KeyListener,
        MouseListener {
    private Builder builder;
    private Image image,currentSprite, character,characterWalk, background;
    private Graphics second;
    private URL base;
    private static Background bg1;

    @Override
    public void init() {
        setSize(800, 400);
        setBackground(Color.BLACK);
        setFocusable(true);
        addKeyListener(this);
        Frame frame = (Frame) this.getParent().getParent();
        frame.setTitle("Castle Fight");


        try {
            base = getDocumentBase();
        } catch (Exception e) {
            // TODO: handle exception
        }

        // Image Setups
        background = getImage(base, "data/background2.png");
        character = getImage(base, "data/builder.png");
        currentSprite = character;
    }

    @Override
    public void start() {
        bg1 = new Background(0, 0);    
        builder = new Builder();   

        Thread thread = new Thread();
        thread.start();

    }

    @Override
    public void stop() {
        // TODO Auto-generated method stub
    }

    @Override
    public void destroy() {
        // TODO Auto-generated method stub
    }

    @Override
    public void run() {
        while (true) {
            System.out.println("this thing");
            builder.update();
            bg1.update();
            repaint();

            try {
                Thread.sleep(17);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }


        }
    }

    @Override
    public void update(Graphics g) {
        if (image == null) {
            image = createImage(this.getWidth(), this.getHeight());
            second = image.getGraphics();
        }


        second.setColor(getBackground());
        second.fillRect(0, 0, getWidth(), getHeight());
        second.setColor(getForeground());
        paint(second);


        g.drawImage(image, 0, 0, this);
    }

    @Override
    public void paint(Graphics g) {
        g.drawImage(background, bg1.getBgX(), bg1.getBgY(), this);
        g.drawImage(currentSprite, builder.getCenterX() - 61, builder.getCenterY() - 63, this);
    }

    }
}
请记住,我取出了导入和关键事件,因此代码没有占用太多空间,但我确实有所有必要的导入。
希望有人能给我一些提示。

你从来没有提供
可运行的
。改变

Thread thread = new Thread();
thread.start();


您从不提供可运行的
。改变

Thread thread = new Thread();
thread.start();