【问题标题】:Exception in thread "main" java.lang.NullPointerException error. using Gpdraw线程“main”中的异常 java.lang.NullPointerException 错误。使用 Gpdraw
【发布时间】:2012-10-10 03:35:56
【问题描述】:

好吧,所以我的程序应该根据用户输入的坐标(X、Y、宽度、长度)自动绘制一个矩形。当我运行我的程序时,我在线程主错误中得到一个异常。

这是确切的错误:

Exception in thread "main" java.lang.NullPointerException
at rectangle.draw(rectangle.java:31)
at rectangle.main(rectangle.java:52)

请告诉我我做错了什么!

谢谢!

代码:`import gpdraw.*; 导入 java.util.Scanner;

公共类矩形{

private static double myX;
private static double myY;
private static double myWidth;
private static double myHeight;
private DrawingTool myPencil;
private SketchPad myPaper;

public double getPerimeter(){

    double perimeter;
    perimeter = myWidth * 2 + myHeight * 2;


    return perimeter;   
}
public double Area(){
    double area;

    area = myHeight * myWidth;
    System.out.println("Area: " + area);

    return area;

}
public void draw(){
    myPencil.up();
    myPencil.move(myX , myY);
    myPencil.down();
    myPencil.move(myX + myWidth, myY);
    myPencil.move(myX + myWidth, myY + myHeight);
    myPencil.move(myX , myY);
}


public static void main(String[] args){

    Scanner input = new Scanner(System.in);
    System.out.println("Enter X Value: ");
    myX = input.nextInt();
    System.out.println("Enter Y Value: ");
    myY = input.nextInt();
    System.out.println("Enter Width: ");
    myWidth = input.nextInt();
    System.out.println("Enter Height: ");
    myHeight = input.nextInt();
    rectangle picture = new rectangle();
    picture.draw();
}

} `

第 51 行:picture.draw(); 第 31 行:myPencil.up();

【问题讨论】:

  • 第 31 行是哪一行?第 52 行是哪一行?
  • 第 31 行:mypencil.up();第 52 行:picture.draw();
  • 你在哪里给 mypencil 赋值?
  • 在公开课上。我想我忘了复制一些。让我快速编辑一下

标签: java exception nullpointerexception


【解决方案1】:

您永远不会为 myPencil 字段分配值,因此它将具有默认值 null。当您尝试在此处取消引用它时:

myPencil.up();

...这将引发异常。

大概你意味着myPencil一个值,例如

private DrawingTool myPencil = new Pencil();

...或者也许在构造函数中这样做?

【讨论】:

    【解决方案2】:

    你需要实例化myPencil:

    myPencil = new DrawingTool();
    

    【讨论】:

      猜你喜欢
      • 2013-04-30
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      • 2012-12-09
      • 2023-03-10
      • 1970-01-01
      • 2015-09-30
      • 1970-01-01
      相关资源
      最近更新 更多