Java 在小程序HTML上加载图像
我正在尝试制作一个简单的游戏,只在屏幕上随机呈现4个图像,但我想把它放在一个HTML网站上试试。当我在Eclipse上测试时,它工作得很好,但是当我把它放在html上并上传到网站时,它告诉我:拒绝访问(“java.io.FilePermission”“Sheet.png”“read”),我知道我必须把getResourceAsStream(“Sheet.png”) 但它就是不起作用请帮帮我Java 在小程序HTML上加载图像,java,html,eclipse,image,applet,Java,Html,Eclipse,Image,Applet,我正在尝试制作一个简单的游戏,只在屏幕上随机呈现4个图像,但我想把它放在一个HTML网站上试试。当我在Eclipse上测试时,它工作得很好,但是当我把它放在html上并上传到网站时,它告诉我:拒绝访问(“java.io.FilePermission”“Sheet.png”“read”),我知道我必须把getResourceAsStream(“Sheet.png”) 但它就是不起作用请帮帮我 import java.awt.Canvas; import java.awt.Color; import
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:
我有一些“坏消息”要告诉你。小程序在这里工作得很好
这表明您看到的问题是缓存旧类的结果。确保打开并刷新缓存,然后再重新加载页面。1)“当我将其放入html并上载到网站时”我们可以访问小程序的URL是什么?2)
width=“640”height=“320”
这在HTML中是好的,但是删除所有其他关于设置大小的引用-它们是不必要的&没有什么帮助。3) 不要从init()
方法中调用start()
。这些方法只能由JVM调用。4) 不要在没有充分理由的情况下混合使用Swing和AWT组件,在这种情况下,用JPanel
替换Canvas
。5) 替换System.out.println(e.getMessage())代码>带有e.printStackTrace()
6)g.drawImage(墙,…nextInt(280),这个)代码>我更改了您告诉我的所有内容,但它仍然告诉我相同的错误,但在Eclipse中效果良好。网址是:哇,太好了,非常感谢如果我遇到更多问题,我希望我有更多的“坏消息”,非常感谢:)
<html><body>
<p>
<applet code="Apple.class" archive="Applet.jar"
width="640" height="320"></applet>
</p>
</body></html>