这两天在搞一东东,里面有
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_HOME`或`CATALINA_HOME`等环境变量没有正确指向Tomcat和JDK的位置,从而引起程序找不到必要的资源。 - **类路径问题**:如果依赖库...
例如,在一个Person类中,可以通过初始化name变量来避免在getGreeting方法中出现NullPointerException。 其次,如果无法或不想初始化变量,可以在尝试访问对象之前进行空值检查。这通常涉及到一个简单的if语句来...
Java中常见的NullPointerException异常 Java中常见的NullPointerException异常是Java编程中最常见的一种异常。这种异常发生在程序试图访问或操作一个为null的对象时。下面是可能发生NullPointerException的几种情况...
正确处理NullPointerException对于编写健壮的Java程序至关重要,它不仅可以避免程序在运行时出现崩溃,还可以提高代码质量,使得程序更容易理解和维护。 虽然NullPointerException在Java编程中是一个常见的问题,但...
Java 中避免 NullPointerException 的方法总结 Java 中的 NullPointerException 是一个非常常见的错误,它通常是由于程序员没有正确地处理 null 对象导致的。避免 NullPointerException 的方法总结是非常重要的,本...
1. NullPointerException简介:NullPointerException,即空指针异常,是Java语言中的一种运行时异常。它通常发生在试图调用一个未指向任何对象的引用变量的方法或属性时。这种异常会导致程序停止执行,除非通过异常...
在使用EasyExcel进行数据导出操作时,可能会遇到空指针异常(NullPointerException),这个异常通常是由于字体库缺失或者配置不当造成的。具体来说,当EasyExcel在执行字体相关的操作时,如果找不到必要的字体文件,...
NullPointerException 是一种常见的 Java 异常,其出现是由于程序员没有正确地处理对象的空值引用的结果。通过检查对象是否为空,然后再进行操作或引用,可以避免 NullPointerException 的发生。同时,采用合适的...
java.lang.NullPointerException出现的几种原因及解决方案 java.lang.NullPointerException是Java中最常见的异常之一,它经常出现在日常编程中。了解java.lang.NullPointerException的原因和解决方案对于Java开发者...
在Java编程中,NullPointerException是一种常见的异常,通常发生在尝试在空对象引用上访问或执行操作时。为了防止这种异常,开发人员必须在代码中做好相应的异常处理措施。以下是几种常见的预防和解决...