是什么导致我的NullPointerException

时间:2016-05-31 23:23:30

标签: java drjava

我的程序编译完美,但每当我尝试运行它时会抛出NullPointerException。我试着搜索一下,发现错误与程序试图使用它时某些值为null有关,但我重新检查了所有内容并且显示为空白。

    import hsa.Console;
    import java.awt.*;
    import java.util.* ;
    public class PlatformAndBall2
    {
        static Console g ;
       public static void BallLoop() throws InterruptedException
    {
    do {

      int height = g.getHeight(); 
      int width = g.getWidth(); 
      int xpos,ypos ; xpos= 0; ypos =0 ; 
      int radius ;  radius = 20 ; 
      int addx, addy ; addx = 3; addy = 3; 

      xpos += addx ; 
      ypos += addy  ; 
      g.setColor(Color.red) ;
      g.clear();
      g.fillOval(xpos,ypos,radius,radius) ;

      Thread.sleep(15); // sets frames

      if ( xpos < 0 )
        addx += 3 ; 

      if ( xpos > width - radius)
         addx += -3 ;    

      if ( ypos < 0 )
        addy += 3 ;    

      if ( ypos > height -radius ) 
        addy += -3 ;
    }while (true);
       }
       public static void main(String[] args)throws InterruptedException {

        Console g = new Console() ;
        BallLoop();
       }}

1 个答案:

答案 0 :(得分:0)

静态字段static Console g永远不会被初始化。在您的主要内容中,您正在初始化本地Console g = new Console();.初始化g = new Console();

public static void main(String[] args)throws InterruptedException {
    g = new Console();
    BallLoop();
}