JPanel中drawOval时的java.lang.NullPointerException
我试图在一个程序中画线,但我经常遇到这个错误。。 我现在做的是: 我有一个JFrame和一个BoxLayout(在Y_轴上),在这个框架内我有6个JPanel,一个在另一个下面。 在前两个面板中,我有一些jlabel和JTextFields,我想在第三个JPanel中画线,我这样做了:JPanel中drawOval时的java.lang.NullPointerException,java,graphics,nullpointerexception,jframe,jpanel,Java,Graphics,Nullpointerexception,Jframe,Jpanel,我试图在一个程序中画线,但我经常遇到这个错误。。 我现在做的是: 我有一个JFrame和一个BoxLayout(在Y_轴上),在这个框架内我有6个JPanel,一个在另一个下面。 在前两个面板中,我有一些jlabel和JTextFields,我想在第三个JPanel中画线,我这样做了: public void Dibujar(int-vidas){ Graphics graf=panel3.getGraphics(); 如果(vidas==6){ graf.drawOval(10,10,30,3
public void Dibujar(int-vidas){
Graphics graf=panel3.getGraphics();
如果(vidas==6){
graf.drawOval(10,10,30,30);
}
否则{
graf.drawOval(10,10,60,60);
}
}
但是这样做,我得到了NullPointerException,而不是它,我尝试使用它工作的方法paintComponent,但是它在所有JPanel下面绘制,而不是确切地说在Jpanel3下面绘制
如果你还需要解释什么,就告诉我。
提前非常感谢。请在您的Panel3部分中调用此方法。您想
绘制一个特定的组件
@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());
必须在paintComponent()中完成绘制。发布一个简短但完整的可运行示例,在paintComponent()中绘制,并再现问题。告诉我们你期望它做什么以及它会做什么。非常感谢你,它帮助了很多,现在它工作得非常完美。省略Graphics g=getGraphics()代码>并添加一个super.paintComponent(g)
。(除此之外,该方法可能受保护
,并且应该有@Override
注释。)谢谢,我将编辑。我几乎无限期地用C语言编程,我确实忘记了一些小事情。