小程序图像丢失 [英] Applet image missing
本文介绍了小程序图像丢失的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你好 Stackoverflow 成员,
Hello again Stackoverflow members,
CatchTheCreature Applet 类应该显示在不同位置延迟重绘的图像,但由于某种原因该图像没有显示.
The CatchTheCreature Applet class is supposed to display an image being repainted in different locations by a time delay, but for some reason the image is not being displayed.
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Random;
import javax.swing.ImageIcon;
import javax.swing.JApplet;
import javax.swing.Timer;
public class CatchTheCreature extends JApplet {
private int height = 300;
private int width = 600;
private final int delay = 1001;
private ImageIcon image;
private Timer timer;
private int x, y;
private int counter = 0;
Random gn = new Random();
public void init() {
DotListener dot = new DotListener();
addMouseListener(dot);
image = new ImageIcon("Monster.png");
timer = new Timer(delay, new timerListener());
x = 40;
y = 40;
getContentPane().setBackground(Color.black);
}
// Action Listener Methods
private class timerListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
x = gn.nextInt(width);
y = gn.nextInt(height);
repaint();
}
}
private class DotListener implements MouseListener {
public void mousePressed(MouseEvent event) {
}
@Override
public void mouseClicked(MouseEvent event) {
if (event.getX() > (x) && event.getX() < (x + 60)
&& event.getY() < (y + 60) && event.getY() > (y)) {
x = gn.nextInt(width);
y = gn.nextInt(height);
counter = counter + 1;
repaint();
}
}
@Override
public void mouseEntered(MouseEvent event) {
}
@Override
public void mouseExited(MouseEvent event) {
}
@Override
public void mouseReleased(MouseEvent event) {
}
}
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.yellow);
image.paintIcon(this, g, x, y);
g.drawString("Clicked accuratly: " + counter, 5, 15);
}
public void start() {
timer.start();
}
public void stop() {
timer.stop();
}
}
这是我的html文件
<applet code = CatchTheCreature width = 250 height = 300>
</applet>
如果有人能告诉我如何在小程序上显示图像图标,我将不胜感激.
If someone can tell me how i can display the image icon on the applet I would be very grateful.
谢谢
推荐答案
..image = new ImageIcon("Monster.png");
..image = new ImageIcon("Monster.png");
- 基于
String
的ImageIcon
构造函数假定String
代表一个File
. - 沙盒小程序无法访问
File
对象,但可以访问来自相同代码库/文档库的URL
. - 使用
getDocumentBase()
/getCodeBase()
和图片的相对路径,小程序就可以移植了(假设图片也上传到同一个地方). - The
String
based constructor toImageIcon
presumes theString
to represent aFile
. - A sand-boxed applet cannot access
File
objects, but can accessURL
s coming from the same code base/document base. - Use
getDocumentBase()
/getCodeBase()
with an relative path to the image, and the applet will be portable (assuming the image is also uploaded to the same place).
这篇关于小程序图像丢失的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文