这两天在搞一东东,里面有
img=createImage(imgwidth,imgheight);
imgg=img.getGraphics();
这样的语句,可是会出现NullPointerException,下面的是我所找到最好的答案...
dz00H wrote:
Exception會印出呼叫堆疊裡的內容,並告訴你錯在第幾行,
以你的例子來講:
Exception in thread "main" java.lang.NullPointerException
at Move.<init>(Move.java:13)
at Move.main(Move.java:34)
是錯在Move物件的建構子中(在Move.java這個檔案的第13行),
然後我們可以去看看那裡出了什麼事:
offg = off.getGraphics();
java.lang.NullPointerException會出現的原因,是因為對著是null的物件作存取、操作
這一行裡唯一被操作的物件就是off了,所以我們可以知道
「因為off在這裡是null,所以出了這個java.lang.NullPointerException」
為什麼off會是null呢?
因為你用的createImage()方法,它並不是同步的方法。
也就是說,這個createImage並不會等到Image真正產生才繼續往下執行,
這其實是為了效率使然,最早這個方法是為了Applet存取網路資源時進行加速,
但是也造成相當多的困擾。
我建議你在這邊改用java.awt.image.BufferedImage,
它的建構子是公開的,你可以自己new一個出來作為DoubleBuffer。
off 變數的值是 null 不是因為 createImage() method 不是同步 method,而是一個 non-displayable 的 component,createImage 操作無法使用(因為無法在未成為 displayable 之前達成),在未成為 displayable 前,一個 component 的 createImage() method 只會傳回 null。
至於你提到使用到 image 時才會存取資源這個是 Image object 的特性,但是 createImage() 回傳的 image object 反而比較接近 BufferedImage,是直接 allocate 一塊記憶體來存放 pixel data。
分享到:
相关推荐
Java.lang.NullPointerException 是 Java 语言中最常见的异常之一,它的出现通常是由于编程不当或对象未被正确初始化所致。在本文中,我们将探讨 Java.lang.NullPointerException 的可能原因及处理方法。 原因一:...
java 出现NullPointerException的原因及解决办法 日常开发过程中,最常见的异常莫过于NullPointerException,之前的时候,只是知道去找到报错的位置,然后去解决它,最近有空学习C语言,就去深究了下...
Java中的空指针异常(NullPointerException)是编程过程中常见的错误类型,尤其对于新手开发者来说更为常见。这个异常通常在试图访问或操作一个值为null的对象引用时抛出。下面将详细探讨这一异常的原因、表现形式、...
Excel文件读取时NullPointerException 异常处理
java 避免出现NullPointerException(空指针)的方法总结 java 避免出现NullPointerException(空指针)的方法总结是java应用中非常重要的一部分,因为空指针异常是java应用中最常见的异常之一。避免空指针异常可以...
Java.lang.NullPointerException 解决方案与原因分析 Java.lang.NullPointerException 是 Java 语言中一种常见的异常,它发生在 Java 应用程序尝试使用 null 对象引用时。这种异常通常是由于程序员错误地认为对象...
Java中常见的NullPointerException异常 Java中常见的NullPointerException异常是Java编程中最常见的一种异常。这种异常发生在程序试图访问或操作一个为null的对象时。下面是可能发生NullPointerException的几种情况...
Java 中避免 NullPointerException 的方法总结 Java 中的 NullPointerException 是一个非常常见的错误,它通常是由于程序员没有正确地处理 null 对象导致的。避免 NullPointerException 的方法总结是非常重要的,本...
EasyExcel 导出报空指针NullPointerException java.lang.NullPointerException: null at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264) at sun.awt.FontConfiguration.readFontConfigFile...
NullPointerException如何解决.md
NullPointerException解决办法.md
NullPointerException 是一种常见的 Java 异常,其出现是由于程序员没有正确地处理对象的空值引用的结果。通过检查对象是否为空,然后再进行操作或引用,可以避免 NullPointerException 的发生。同时,采用合适的...
java.lang.NullPointerException出现的几种原因及解决方案 java.lang.NullPointerException是Java中最常见的异常之一,它经常出现在日常编程中。了解java.lang.NullPointerException的原因和解决方案对于Java开发者...
NullPointerException(解决方案).md
在Java编程语言中,`NullPointerException` 是一个常见的运行时异常,它发生在试图访问或操作一个值为null的对象引用时。这个异常表示程序试图通过一个null引用调用方法或访问字段,而实际上该引用并没有指向任何...
NullPointerException是Java编程中的一个常见问题,它涉及到对象的初始化、null检查、方法返回值处理等多个方面。通过确保对象在使用前被正确初始化、在操作对象前进行null检查、使用Optional类以及进行代码审查和...