【发布时间】:2017-11-20 01:09:01
【问题描述】:
我试图在小程序窗口中显示Image,但它不起作用。我已将图像放在小程序文件的同一目录中。
这是我的示例代码
import java.applet.Applet;
import java.awt.Image;
import java.awt.Graphics;
public class Animation extends Applet{
Image img;
public void init(){
img=getImage(getDocumentBase(),"images.jpg");
}
public void paint(Graphics g){
g.drawImage(img, 40, 60, this);
g.drawString("This is first step", 10, 30);
}
}
【问题讨论】:
-
“我已将图像放在小程序文件的同一目录中” - 然后尝试改用
ImageIO.read(getClass().getResource("images.jpg"))。getImage正在尝试从小程序查看器正在使用的 Web 服务器或执行上下文中加载它 -
Applet在 15 年前被JApplet取代,您可以考虑改用它。此外,您应该在进行任何自定义绘画之前调用super.paint,JLabel是显示图像的更好方式 -
1) 为什么要编写小程序?如果是老师指定的,请参考Why CS teachers should stop teaching Java applets。 2) 为什么使用 AWT?请参阅this answer 以了解放弃使用支持 Swing 的组件的 AWT 的许多充分理由。 3) 图像是否与加载小程序的 HTML 位于同一目录中?这就是 JRE 将寻找图像的地方。
-
“我已经把图片放在applet文件的同一个目录下。” - 你说的这行是什么意思?哪个目录?
-
我的 Animation.java 文件位于 c:\workspace\applet\Animation.java 并且我要加载到 applet 中的图像位于 c:\workspace\applet\images.jpg跨度>