编译错误:非法启动表达式

Pet*_*sey 4 java

我正在学习Java(游戏方面).我买了一本书,它有一些代码,我试着复制并测试它.唯一的问题是,当我尝试编译它时会出现错误.

C:\Users\James\Desktop\Java>Javac GamePanel.java                                        
GamePanel.java:57: illegal start of expression                              
        private void gameUpdate()                                   
        ^                         
GamePanel.java:57: illegal start of expression                             
        private void gameUpdate()                               
                ^                                              
GamePanel.java:57: ';' expected                        
        private void gameUpdate()                                 
                               ^                      
GamePanel.java:64: reached end of file while parsing                                
}?                   
 ^                                    
4 errors              
Run Code Online (Sandbox Code Playgroud)

代码是:

public class GamePanel extends  JPanel implements Runnable
{
    private static final int PWIDTH = 500;
    private static final int PHEIGHT = 400;

    private Thread animator;
    private volatile boolean running = false;

    private volatile boolean gameOver = false;

    public GamePanel()
    {
        setBackground(Color.white);
        setPreferredSize( newDimension(PWIDTH, PHEIGHT));
    }

    public void addNotify()
    {
        super.addNotify();
        startGame();
    }

    public void startGame()
    {
        if (animator == null || !running)
        {
            animator = new Thread(this);
            animator.start();
        }
    }

    public void stopGame()
    {
        running = false;    
    }

    public void run()
    {
        running = true;
        while(running)
        {
            gameUpdate();
            gameRender();
            repaint();

            try
            {
                Thread.sleep(20);
            }
        catch(InterruptedException ex)
        {

        }
        System.exit(0);
    }

    private void gameUpdate()
    {
    if (gameOver == false) {

    }
    }

}
Run Code Online (Sandbox Code Playgroud)

我知道我可能做错了但是我一遍又一遍地检查过,有人可以告诉我我做错了什么吗?

Gar*_*vis 5

你错过了一个}while循环没有关闭.

public void run()
{
    running = true;
    while(running)
    {
        gameUpdate();
        gameRender();
        repaint();

        try
        {
            Thread.sleep(20);
        }
        catch(InterruptedException ex)
        {

        }
    } // <<< this is the missing brace
    System.exit(0);
}
Run Code Online (Sandbox Code Playgroud)

您可能希望获得像eclipse,netbeansintellij(所有免费)这样的IDE ,并使用它们来格式化代码......当代码格式正确时,丢失大括号等内容会变得更容易找到.