JPanel中的drawOval时java.lang.NullPointerException

时间:2014-08-27 16:16:00

标签: java graphics nullpointerexception jframe jpanel

我正在尝试在程序中绘制线条,我不断收到此错误.. 我正在做的是以下内容: 我有一个带有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。

如果你需要解释别的东西,请告诉我。 非常感谢你提前。

1 个答案:

答案 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());