我正在尝试从主方法调用子类中的图形方法。我遇到了图形调用问题。这就是我正在做的事情:
Graphics gr = null;
frame.paint(childClass.repaint(gr));
当我执行代码时,我得到一个 NullPointerException,大概是因为图形对象被设置为 null。但是,如果我不这样做,代码将不会执行,因为图形对象未初始化。这里是我在子类中调用的代码供参考:
public Graphics repaint(Graphics gr)
{
super.paint(gr);
setEyes();
Color eyeColor = Color.BLACK;
gr.setColor(getColour());
gr.fillOval(50, 100, getHeadSize(), getHeadSize());
int count;
int offset = 90;
for(count = 0; count < getEyes(); count++)
{
gr.setColor(eyeColor);
gr.fillOval(offset, 150, 15, 15);
offset = offset+50;
}
gr.setColor(getColour());
gr.drawLine(125, 250, 125, 250+getBodyHeight());
gr.drawLine(75, 275, 75+getBodyWidth(), 275);
gr.drawLine(75, 275, 60, 275+getArmLength());
gr.drawLine(75+getBodyWidth(), 275, 90+getBodyWidth(), 275+getArmLength());
return gr;
}
请注意,绘制代码在 main 方法中按预期工作,但它必须在子类中。
谢谢你的帮助。
编辑添加...
我需要能够从子类中调用它。无论如何都可以从主方法调用位于子类中的图形方法?