一些2D Java代码麻烦

时间:2013-10-22 10:56:03

标签: java swing jframe 2d

我正在尝试启动一些2d代码,到目前为止我已经有了这么多。它应该只显示一个窗口,但是当我运行它时(在调试中)我收到错误,说明找不到源代码?有人看到我错过的东西吗?

    package game;

    import java.awt.BorderLayout;
    import java.awt.Canvas;
    import java.awt.Dimension;

    import javax.swing.JFrame;

public class Game extends Canvas implements Runnable{


private static final long serialVersionUID = 1L;

public static final int WIDTH = 160;
public static final int HEIGHT= WIDTH/12*9;
public static final int SCALE=3;
public static final String NAME = "My Game";

private JFrame frame;
public boolean running=false;

public Game()
{
    setMinimumSize(new Dimension(WIDTH*SCALE, HEIGHT*SCALE));
    setMaximumSize(new Dimension(WIDTH*SCALE, HEIGHT*SCALE));
    setPreferredSize(new Dimension(WIDTH*SCALE, HEIGHT*SCALE));

    frame = new JFrame(NAME);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLayout(new BorderLayout());

    frame.add(this,BorderLayout.CENTER);
    frame.pack();

    frame.setResizable(false);
    frame.setLocation(null);
    frame.setVisible(true);
}

public synchronized void start() 
    {
    running = true;
    new Thread(this).start();
    }

public synchronized void stop() 
    {
    running =false;
    }

public void run() 
    {
    while(running)
    {
        System.out.println("Hello!");
    }

    }

public static void main(String[]args)
{
    new Game().start();

}


 }

我正在通过一些教程来实现这一点,我自己经历了几次代码,但我无法发现错误。 :(

1 个答案:

答案 0 :(得分:3)

问题在于这一行:

frame.setLocation(null);

提供给setLocation的参数不得为null。如果您不需要设置框架的位置,请不要调用该方法。默认情况下,框架位于屏幕的左上角。