如何在eclipse中的Java applet中显示图像?

时间:2013-11-19 02:25:27

标签: java eclipse applet bufferedimage

我在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);
}
}

关于什么是错的任何想法?

1 个答案:

答案 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
相关问题