我在eclipse中的applet中显示图像时遇到问题。我想知道是否有其他方法可以做到这一点。我还想知道是否有一个可靠的在线applet测试器,它显示了我在网上制作的applet。我正在关注oracle教程,但它们不起作用。这是我的代码:
显示课程:
import java.applet.Applet;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
public class usb extends Applet{
static BufferedImage background;
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public void init() {
// TODO Auto-generated method stub
try {
URL url = new URL(getCodeBase(), "resources/usb_homescreen.png");
background = ImageIO.read(url);
} catch (IOException e) {
}
setSize(1000,500);
add(new goat());
}
}
Canvas类:
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
public class goat extends Canvas {
/**
*
*/
private static final long serialVersionUID = 1L;
goat() {
setSize(1000,500);
setBackground(Color.white);
}
@Override
public void paint(Graphics g) {
// TODO Auto-generated method stub
super.paint(g);
g.drawImage(usb.background, 0, 0, null);
}
}
关于什么是错的任何想法?
答案 0 :(得分:0)
小程序在特殊环境中执行。将它们用作普通对象时,缺少此环境,即永远不会调用init
方法,方法getCodeBase()
将无效。如果您想测试Applet
那么JDK附带的程序appletviewer.exe
。它需要包含<applet>
或<object>
标记的HTML页面。
但是还有一种方法可以在独立的java应用程序中实例化Applet
,它将生成所需的上下文。给定Applet
类“MyApplet
”必需的代码如下:
MyApplet applet=(MyApplet)java.beans.Beans.instantiate(
MyApplet.class.getClassLoader(), MyApplet.class.getName());
System.out.println(applet.getCodeBase());//prove that the context is now there
// now you can use applet like a normal AWT/Swing component