Eclipse运行Applet没有显示图片,getCodeBase,getDocumentBase

解决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);
	}
}
  显示的图片为:


如果你觉得该帖子帮到你,还望贵人多多支持,鄙人会再接再厉,继续努力的~

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI吃大瓜

尊重原创,感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值