Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 游戏循环未运行_Java_Loops - Fatal编程技术网

Java 游戏循环未运行

Java 游戏循环未运行,java,loops,Java,Loops,我正在用java制作一个太空射击游戏。我正在使用Runnable接口,这意味着应该自动调用run()方法。在这个方法中,我有一个循环一直在运行,直到有人将布尔值running设置为false。循环应该可以打印,但不能打印。这是我的密码: package main; import javax.swing.JFrame; import javax.swing.JPanel; public class Game extends JPanel implements Runnable { p

我正在用java制作一个太空射击游戏。我正在使用
Runnable
接口,这意味着应该自动调用
run()
方法。在这个方法中,我有一个循环一直在运行,直到有人将布尔值
running
设置为false。循环应该可以打印,但不能打印。这是我的密码:

package main;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Game extends JPanel implements Runnable {

    private static final long serialVersionUID = 1L;
    public static final int WIDTH = 800;
    public static final int HEIGHT = 600;
    public static final String TITLE = "Space Shooter";

    private boolean running = false;
    private Thread thread;


    public Game() {

    }

    private synchronized void start() {
        if (running)
            return;

        running = true;
        thread = new Thread();
        thread.start();
    }

    private synchronized void stop() {
        if (!running)
            return;

        running = false;
        try {
            thread.join();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.exit(1);
    }

    @Override
    public void run() {
        while (running) {
            System.out.println("WORKING");
        }
        stop();
    }

    public static void main(String[] args) {

        Game game = new Game();
        JFrame frame = new JFrame(TITLE);

        frame.setSize(WIDTH, HEIGHT);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
        frame.add(game);
        frame.setVisible(true); 

        game.start();

    }

}

您忘记将
Runnable
实例传递给线程构造函数:

 thread = new Thread(this);

您忘记将
Runnable
实例传递给线程构造函数:

 thread = new Thread(this);