Java:Graphics(2D)画图报错或失败怎么办?

Java:Graphics(2D)画图报错或失败怎么办?

Graphics(2D)的drawImage()方法画图有时候会出现一些问题。下面就是这些错误的原因和解决方法。

  1. Image对象的问题(图像并没有被绘制)

原因:先举个例子:文章编写者的java.awt.Toolkit类好像出现了问题。用java.awt.Toolkit.getDefaultToolkit().get(create)Image方法好像出现了一点问题,返回的Image的长宽都是-1。如果有一样的情况,请参考下面的解决方案。

可能的解决方案:使用javax.imageio.ImageIO的read()方法获取图像。

  1. Image对象的问题(报错NullPointerException)

原因:Image对象的值是null。

可能的解决方案:想办法获取一张值不是null(还有长宽不能是-1)的图片。

  1. Graphics(2D)对象的问题(图像或其他要绘制的东西并没有被绘制)

原因:想要用JFrame的getGraphics()把图像或其他要绘制的东西画到一个JPanel上,那显然是不可能的。还有,用Image类提供的getGraphics()方法似乎没啥用。

可能的解决方案:建议用继承了Canvas(或JPanel)的类重写paint(Graphics g)方法获得的Graphics绘制图像或其他要绘制的东西。

  1. Graphics(2D)对象的问题(报错NullPointerException)

原因:Graphics(2D)对象的值是null。顺便说一句,使用JPanel(或JFrame)的getGraphics()方法得到的Graphics对象有99.999%是null。

可能的解决方案:跟“Graphics(2D)对象的问题(图像或其他要绘制的东西并没有被绘制)”一样。

  1. Graphics2D对象的问题(倾斜或旋转过度导致看不见图像)

原因:原因其实很简单,比如像执行完g2.shear(100,100)和g2.rotate(Math.toRadians(180))   (g2是Graphics2D对象)   这样荒谬的代码再用g2画图像或其他要绘制的东西,肯定看不见啊。

可能的解决方法:不要倾斜或旋转那么夸张就好了。

以上的就是所有作者亲身经历过的画图失败的原因和解决方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值