我正在制作一个图形计算器,因为我的comp sci老师说如果我能证明我知道将在课堂上教授的所有主题,他将在今年剩下的时间里通过我,所以我的想法是图形计算器,我试图将我的applet mumbo jumbo放在另一个班级。但是在我认为正确地做事之后,我在尝试使用applet中的类方法时遇到错误。 这两个类都在同一个包中。 这是我要来的课程: (我也导入了java.awt。*)
public class NumberCalc {
//Bunch of variable for calculator
Graphics page;
static GraphingCalc graph = new GraphingCalc();
/* Blah blah calculator shit for miles
* main method is in here with the drawGraph method
*
*/
public static void drawGraph() {
graph.addPoint(20,20,5,5);
//Test method to see if it draws, next class has the info
}
}
以下是我要来的课程:
public class GraphingCalc {
Graphics page;
//Code that doesnt matter right now
public void addPoint(int x, int y, int sizeA, int sizeB) {
setBackground(color.black);
page.setColor(color.cyan) //Easy to see color for testing
page.fillOval(x,y,sizeA,sizeB);
}
}
我抛出的错误是:
Exception in thread main java.lang.NullPointerException
at calculator.GraphingCalc.addPoint(GraphingCalc:18)
第18行是page.setColor(color.cyan),如果我注释掉这一行并转到fillOval,那么它会给出相同的错误,因此“页面”图形变量显然有问题。任何解决方案?
答案 0 :(得分:1)
NullPointerException
表示您正在尝试引用一个没有值的变量。在这里,您有Graphics
类型字段的声明和名称page
,但该字段永远不会初始化(至少不会您发布的代码)。换句话说 - 您尝试向page
询问setColor(...)
,但没有page
(因为您从未提供过)。