zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

eclipse 运行 显示 图片 没有 Applet
2023-09-11 14:17:47 时间

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


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