Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在eclipse中在java小程序中显示图像?_Java_Eclipse_Applet_Bufferedimage - Fatal编程技术网

如何在eclipse中在java小程序中显示图像?

如何在eclipse中在java小程序中显示图像?,java,eclipse,applet,bufferedimage,Java,Eclipse,Applet,Bufferedimage,我在eclipse中的小程序中显示图像时遇到问题。我想知道是否有其他方法可以做到这一点。我还想知道是否有一个可靠的在线小程序测试仪可以显示我在网上制作的小程序。我正在学习oracle教程,但它们不起作用。这是我的密码: 显示类: import java.applet.Applet; import java.awt.image.BufferedImage; import java.io.IOException; import java.net.URL; import javax.imageio.I

我在eclipse中的小程序中显示图像时遇到问题。我想知道是否有其他方法可以做到这一点。我还想知道是否有一个可靠的在线小程序测试仪可以显示我在网上制作的小程序。我正在学习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());
}

}
画布类:

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

有什么问题吗?

小程序是在特殊环境中执行的。当将它们用作普通对象时,缺少此环境,即永远不会调用
init
方法,并且方法
getCodeBase()
将不起作用。如果您想测试一个
Applet
,JDK附带了一个程序
appletviewer.exe
。它需要包含
标记的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

1) 为什么要编写小程序?如果是由于老师的特殊要求,请参考。2) 为什么是AWT而不是Swing?关于放弃使用AWT组件的许多好理由,请参见上的回答。如果您需要支持旧的基于AWT的API,请参阅。是否有swing小程序?从Swing(1.2)的引入可以看出。另请参见此处SO上的示例。它使用
JApplet