繁体   English   中英

在applet HTML上加载图像

[英]Load images on an applet HTML

我正在尝试制作一个简单的游戏,该游戏只能在屏幕上随机渲染4张图像,但是我想在HTML的网站上进行尝试。 当我在Eclipse上测试时,它可以正常工作,但是当我将其放在html上并上传到网站时,它告诉我:访问被拒绝(“ java.io.FilePermission”“ Sheet.png”“读取”),我知道我必须放入getResourceAsStream(“ Sheet.png”);

但这是行不通的,请帮忙!

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.InputStream;
import java.util.Random;
import javax.imageio.ImageIO;

public class Game extends Canvas implements Runnable{

public BufferedImage icons = null;
public BufferedImage wall = null;
public Random r = new Random();
public boolean running;
private InputStream input;

public Game(){

    setBackground(Color.white);
    setSize(640, 320);

    input = Game.class.getResourceAsStream("Sheet.png");

    start();
    this.setSize(new Dimension(640, 320));

    try {
        icons = ImageIO.read(input);
    } catch (IOException e) {
        System.out.println(e.getMessage());
    }

    wall = icons.getSubimage(0, 0, 16, 16);
}

public static void main(String args[]){
    new Apple().init();
}

public void start(){
    running = true;
    new Thread(this).start();
}
public void stop(){
    running = false;
}

public void run() {
    while(running){
        try {
            new Thread().sleep(200);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        repaint();
    }
}
    int rendered;
public void paint(Graphics g){
    g.drawImage(wall, r.nextInt(600), r.nextInt(280),null);
    g.drawImage(wall, r.nextInt(600), r.nextInt(280),null);
    g.drawImage(wall, r.nextInt(600), r.nextInt(280),null);
    g.drawImage(wall, r.nextInt(600), r.nextInt(280),null);
    rendered++;
    g.drawString("Rendered: "+rendered, 0, 290);
}
}

小程序类:

import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JApplet;

public class Apple extends JApplet{

public void init(){
    this.start();
    this.setBackground(Color.WHITE);
    this.setEnabled(true);
    this.setMinimumSize(new Dimension(640, 320));
    this.setMaximumSize(new Dimension(640, 320));
    this.setSize(new Dimension(640, 320));
    this.add(new Game());
}

}

HTML:

<html><body>
<p>
<applet code="Apple.class" archive="Applet.jar"
width="640" height="320"></applet>
</p>
</body></html>

我对你有一些“坏消息”。 小程序在这里很好用。

工作小程序

这表明您看到的问题是旧类缓存的结果。 在重新加载页面之前,请确保Java控制台已打开并刷新缓存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM