我正在尝试在程序中绘制线条,我不断收到此错误.. 我正在做的是以下内容: 我有一个带有BoxLayout的JFrame(在Y_AXIS中),在这个框架内我有一个低于另一个的JPanel。 在前两个面板中,我有一些JLabel和JTextFields,我想在第三个JPanel中绘制线条,我这样做了:
public void Dibujar(int vidas){
Graphics graf = panel3.getGraphics();
if(vidas == 6){
graf.drawOval(10, 10, 30, 30);
}
else{
graf.drawOval(10, 10, 60, 60);
}
}
但是这样做我得到了NullPointerException,而不是这个我尝试使用它工作的paintComponent方法,但是它在所有Jpanels之下绘制,而不是完全是Jpanel3。
如果你需要解释别的东西,请告诉我。 非常感谢你提前。
答案 0 :(得分:0)
在Panel3部分中调用此方法。您希望paint
具体component
。
@Override
class PaintExtension extends JComponent
{
public void paintComponent(Graphics g)
{
int vidas = GetVidas(); //Make a method to get the vidas
super.paintComponent(g);
if(vidas == 6)
{
g.drawOval(10, 10, 30, 30);
}
else
{
g.drawOval(10, 10, 60, 60);
}
}
}
在GUI中:
panel3.add(new PaintExtension());