[英]How to draw an image on the applet
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);
}
}
每當我嘗試運行它時,它都會給我一個空指針異常。 我該如何解決?
不要將Applet
與File
混合使用。 它們就像油和水。 Applet在瀏覽器中運行。 始終使用相對路徑。
使用Applet#getCodeBase()獲取基本URL。 這是包含此小程序的目錄的URL。
示例代碼:(查看getCodeBase()方法的輸出並修改圖像路徑)
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);
}
}
如果您使用的是Windows和Eclipse IDE,請查看下面顯示的屏幕快照,以獲取上面的示例代碼圖像路徑。
更改:
BufferedImage bi=ImageIO.read (new File ("G:\\Java\\WhatDotColour\\Pacman.PNG"));
至
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.