Java 如何在小程序上绘制图像
每次我尝试运行它时,它都会给我一个空指针异常。如何修复它?更改:Java 如何在小程序上绘制图像,java,awt,paint,bufferedimage,Java,Awt,Paint,Bufferedimage,每次我尝试运行它时,它都会给我一个空指针异常。如何修复它?更改: public class ImageExample2 extends Applet { BufferedImage bi; public void init () { resize (500, 500); try { BufferedImage bi = ImageIO.read (new File ("G:\\Java\\
public class ImageExample2 extends Applet
{
BufferedImage bi;
public void init ()
{
resize (500, 500);
try
{
BufferedImage bi = ImageIO.read (new File ("G:\\Java\\WhatDotColour\\Pacman.PNG"));
}
catch (java.io.IOException e)
{
e.printStackTrace ();
}
}
public void paint (Graphics g)
{
g.drawImage (bi, 20, 140, this); //.drawImage(in, 0, 0, null);
}
}
到
改变
bi = ImageIO.read (new File ("G:\\Java\\WhatDotColour\\Pacman.PNG"));
到
不要将
Applet
与文件混用。它们就像油和水一样。小程序在浏览器中运行。始终使用相对路径
用于获取基本URL。这是包含此小程序的目录的URL
示例代码:(查看getCodeBase()方法的输出并修改图像路径)
如果您使用的是Windows&EclipseIDE,请查看下面显示的屏幕截图,以获取上述示例代码图像路径
使bi成为一个类变量(即全局变量)我是Java新手,所以我不确定如何实现这一点。实际上,已经做到了,请看我的答案……实例变量根本没有初始化。
bi = ImageIO.read (new File ("G:\\Java\\WhatDotColour\\Pacman.PNG"));
g.drawImage (bi, 20, 140, this); //.drawImage(in, 0, 0, null);
if (bi!=null) g.drawImage (bi, 20, 140, this); //.drawImage(in, 0, 0, null);
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;
public class ImageExample2 extends Applet {
private Image bi;
public void init() {
resize(500, 500);
System.out.println(getCodeBase()); // file:/D:/Workspace/JavaProject/bin/
// This the actual code that should be used to read the image in Applet
bi = getImage(getCodeBase(), "images/222.png");
}
public void paint(Graphics g) {
g.drawImage(bi, 20, 140, this);
}
}