メイン メソッドから子クラスのグラフィックス メソッドを呼び出そうとしています。グラフィックコールに問題があります。これが私がやっていることです:
Graphics gr = null;
frame.paint(childClass.repaint(gr));
コードを実行すると、おそらくグラフィック オブジェクトが null に設定されているため、NullPointerException が発生します。ただし、そうしないと、グラフィックス オブジェクトが初期化されていないため、コードが実行されません。参考までに、子クラスで呼び出しているコードは次のとおりです。
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;
}
描画コードは、メイン メソッドに記述されている場合は期待どおりに機能しますが、子クラスにある必要があることに注意してください。
助けてくれてありがとう。
追加するために編集されました...
これを子クラスから呼び出せるようにする必要があります。メインメソッドから子クラスにあるグラフィックスメソッドを呼び出す方法はありますか?