关于Applet的一个小收获

最近为了打发空余的时间,开始用Applet写小游戏。今天碰到了一个让我很迷惑的问题:写好的程序在eclipse这样的IDE工具里运行一切正常。但当在页面上运行时,会在要出现图片时不动,图片显示不出来。

 

我读去图片的方法如下:

ImageIcon image = new ImageIcon(applet.getCodeBase(), "img/biggerbat.JPG");

 

后来,在网上搜索资料才发现Applet在网页上有些许限制,而其中最大的限制就是:

 

Applet不能访问本地硬盘

 

于是通过在网上搜索,终于找到了解决之道:

 

URL myResource = this.getClass().getResource("img/biggerbat.JPG");

ImageIcon image = new ImageIcon(myResource);

 

Applet虽然不能直接读本地文件,但它可以通过URL来访问资源。

 

下面是我转自网络上的资料:

To quickly convert a Java application to a Java applet, follow these simple steps below:

  1. Change:
    public class HelloWorld {

    to:

    public class HelloWorld extends JApplet{
  2. Change:
    public static void main(String[] args) {

    to:

    public void init() {
  3. Remove:
    JFrame frame;

    and change all references to the frame in the class to:

    this

    and all references in subclasses to:

    null
  4. Move all your images into a subfolder called "images".
  5. Add this global variable:
    private final static String imagePath = "images//"
  6. Create a method to load ImageIcons as resources:
        private ImageIcon LoadImageIcon(String imgName){
        	
        	URL myResource = this.getClass().getResource(imgName);
        	
        	return new ImageIcon(myResource);
        }

    and change all instances of:

    new ImageIcon("example.jpg")

    to:

    LoadImageIcon(imagePath + "example.jpg")
  7. Build a jar archive of your compiled class files.
  8. Create a HTML file like this one:
    <html>
    <body>
    <applet 
    	code="HelloWorld.class" 
    	archive="HelloWorld.jar" 
    	height="100" 
    	width="100">
    </body>
    </html>

And then, you are all set!

 

 

把Applet的Source打成一个jar包的原因是:

 

Applet的启动时间很长

 

因为每次都得下载所有东西,而且每下载一个类都要向服务器发一个请求。或许浏览器会作缓存,但这并不是一定的。所以一定要把applet的全部组件打成一个JAR(Java ARchive)卷宗(除了.class文件之外,还包括图像,声音),这样只要发一个请求就可以下载整个applet了。

 

游戏还在继续开发中。。。

自己也在不断学习中。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值