解决Eclipse运行Applet没有显示图片
创建一个简单的Java Applet项目用于显示图片,代码如下:【下载】:http://download.csdn.net/detail/guyuealian/9451605
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;
public class AppletTest extends Applet {
Image ImgObj;
public void init(){
ImgObj=getImage(getCodeBase(), "test.jpg");//或者getDocumentBase()时
}
public void paint(Graphics g)
{
g.drawImage(ImgObj,0,0,this);
}
}
运行(Run as Java Applet)项目时,发现test.jpg图片总是不能显示出来,后来发现,是图片路径的问题。那么getCodeBase()和getDocumentBase()的路径是多少?
简单测试一下:
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;
public class AppletTest extends Applet {
Image ImgObj;
public void init(){
System.out.println(getDocumentBase().toString());//输出getDocumentBase的路径
System.out.println(getCodeBase().toString());//输出getCodeBase的路径
ImgObj=getImage(getCodeBase(), "test.jpg");
}
public void paint(Graphics g)
{
g.drawImage(ImgObj,0,0,this);
}
}
运行结果为:
file:/D:/MyEclipse/Workspaces/AppletTest/bin/AppletTest1456975449625.html
file:/D:/MyEclipse/Workspaces/AppletTest/bin/
Applet类中getDocumentBase()和getCodeBase()的区别
Applet类中提供了这2种方法帮我门获取URL对象,其中getDocumentBase()方法返回URL对象,代表了包含Applet的HTML文件所在目录,而getCodeBase()方法返回的URL对象代表了applet文件即.class文件所在目录。它根据HTML文件的"Applet"标记中的CODEBASE属性值计算出来,若该属性没有设置则返回该HTML文件所在目录
因此,如果你要使用getDocumentBase或者getCodeBase获得项目路径,请把你的图片放在bin文件下,否则无法读取的到图片的!!!
当然,你也可以使用绝对路径来读取图片,不过格式要注意:file:/XXXXX的形式,注意斜杠和反斜杠哦~!
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;
public class AppletTest extends Applet {
Image ImgObj;
public void init(){
ImgObj=getImage(null, "file:/D:/MyEclipse/Workspaces/AppletTest/bin/test.jpg");//绝对路径
}
public void paint(Graphics g)
{
g.drawImage(ImgObj,0,0,this);
}
}
显示的图片为:
如果你觉得该帖子帮到你,还望贵人多多支持,鄙人会再接再厉,继续努力的~