Java getGraphics()方法的空指针异常

想在JPanel里面画条线,但是一直报告空指针异常,请问这是什么原因呢?importjava.awt.*;importjavax.swing.*;publicclassM... 想在JPanel里面画条线,但是一直报告空指针异常,请问这是什么原因呢?

import java.awt.*;
import javax.swing.*;
public class MyGame {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Myframe("Hello").lanch();
}

}

class Myframe extends JFrame
{
JPanel jp =null;

public Myframe(String s)
{
super(s);
}

public void lanch()
{
ImageIcon im = new ImageIcon("E:/javadev/xuannan/Games/88.jpg");
JLabel lbl = new JLabel(im);
setBounds(300,65,700,550);
jp = new JPanel(null);
jp.setBounds(175,125,350,300);
jp.setBackground(Color.WHITE);
add(jp);

panelDrawLine();
add(lbl);
setVisible(true);

}

public void panelDrawLine()
{
jp.setVisible(true);
Graphics g=jp.getGraphics();
g.drawLine(175, 125, 525, 125); //就是这里报告空指针异常。

}
本人菜鸟,请说得通俗易懂点,谢谢~

}
展开
 我来答
朝奈纯02
2010-09-03 · TA获得超过458个赞
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:220万
展开全部
先来看一下官方文档关于getGraphics方法的说明:
public Graphics getGraphics()
Creates a graphics context for this component. This method will return null if this component is currently not displayable.

Overrides:
getGraphics in class Component
Returns:
a graphics context for this component, or null if it has none
注意最后一句,返回值有可能是null

jpanel、jframe等各种对象的默认构造器是不会为其增加一个Graphics对象的,也就是说,默认情况下,getGraphics返回的就是null,空指针就是必然了。

要避免这个错误,有两种方法,一种是构造jpanel时,使用带有默认Graphics的构造器,第二种就是为其分配一个
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式