Java中的Graphics空指针

在制作Java的绘图小程序,如何在菜单栏点击clear按钮清除JPanel上的图像我在菜单栏JMenu上加了和clear的item,然后添加一个ActionListene... 在制作Java的绘图小程序,如何在菜单栏点击clear按钮清除JPanel上的图像我在菜单栏JMenu上加了和clear的item,然后添加一个ActionListener 如图 为什么汇报空指针异常 难道JPanel的graphics不能传到JMenu上吗如何解决呢 展开
 我来答
l7722526
2019-06-11 · TA获得超过2.7万个赞
知道大有可为答主
回答量:2.8万
采纳率:84%
帮助的人:3737万
展开全部
先来看一下官方文档关于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的构造器,第二种就是为其分配一个
WMYUOM
2019-06-11 · TA获得超过350个赞
知道小有建树答主
回答量:435
采纳率:78%
帮助的人:208万
展开全部
  1. graphics不是传递的。

  2. 是通过get方法获得的。

  3. 图像没有呈现前是空的。

  4. 没有关键代码,只能做这么多判断。

按照你说的,我自己写了相应的代码,没有出现空引用异常,正常执行。

 @Override
 public void actionPerformed(ActionEvent e) {
  Graphics g=pane.getGraphics();
  g.setColor(pane.getBackground());
  g.fillRect(0, 0, pane.getWidth(), pane.getHeight());
 }
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式