站内搜索: 请输入搜索关键词
当前页面: 在线文档首页 > JDK 5 Documentation v6.0, Java 2 SDK 英文文档

NullPointerException thrown in java.awt.Graphics.drawImage() - JDK 5 Documentation v6.0, Java 2 SDK 英文文档

NullPointerException thrown in java.awt.Graphics.drawImage()


Symptoms

When running an applet in a browser using the Sun JRE, a NullPointerException is thrown in the java.awt.Graphics.drawImage method. The same applet runs under the Microsoft VM.

Cause

This exception is caused by passing a null image to the drawImage method in the Sun JRE.

The Java class libraries in the Sun JRE have changed over time. Some APIs have been clarified, some have been deprecated, and some have had their implementation altered.

The result of passing a null image into the Graphics.drawImage method was not well defined, and the Microsoft VM treats null image as a no-op. However, most versions of the Sun JRE do not accept null as a valid image, thus resulting in a NullPointerException. As of 5.0, the specification has been clarified, and a null image argument is treated as a no-op.

Resolution

In JRE versions before 5.0, code defensively to ensure that only non-null images are passed to the drawImage method. For example:

        Graphics g = getGraphics();
    g.drawImage(img, 100, 100, this);

        The code should be changed to:

        Graphics g = getGraphics();
        if (img != null)
            g.drawImage(img, 100, 100, this);

Related Information

        N/A