[英]Image in Java applet won't show up
我有一个星期天(在学校)到期的项目,但在显示图像时遇到问题。
除了图像之外的其他一切都在工作,我使用了很多人的代码示例,但没有一个工作。
我将保存为“car.png”的图像放在项目目录中。
你能告诉我我错在哪里吗?
这是一个项目,我需要制作一个 Java Applet 来显示一条有几座建筑物的街道、一条道路和路上的一辆汽车,但我无法显示汽车图像。
非常感谢您的帮助!
import java.applet.*;
import java.awt.color.*;
import java.awt.Graphics;
import java.awt.*;
public class App_Main extends Applet
{
House[] h;
private Image img;
public void init()
{
Private v1 = new Private(120,300,80);
Private v2 = new Private(180,300,80);
Building b1 = new Building(300,300,80,5);
img = getImage(getCodeBase(),"car.png");
h= new House[3];
h[0] = v1;
h[1] = v2;
h[2] = b1;
}
public void paint (Graphics g) {
Private v1 = new Private(120, 300, 50);
Private v2 = new Private(180, 300, 50);
Building b1 = new Building(300, 300, 80, 5);
House[] h = new House[3];
h[0] = v1;
h[1] = v2;
h[2] = b1;
for (int i = 0; i < 3; i++) {
g.setColor(Color.BLUE);
h[i].paintHouse(g);
}
//start road
g.setColor(Color.BLACK);
g.drawLine(0, 370, 1000, 370);
g.setColor(Color.GRAY);
g.fillRect(0, 371, 1000, 150);
g.setColor(Color.BLACK);
g.drawLine(0, 520, 1000, 520);
for (int x=0; x < 1000; x += 100)
{
g.setColor(Color.WHITE);
g.fillRect(x+25, 430, 50, 20);
}
//end road
g.drawImage(img,50,50,this);
}
}
您的代码中有几个问题:
您正在使用小程序
小程序是一种高级且专业的应用程序。 在我们周围的现实世界中几乎没有立足之地
请参阅 Andrew Thompson 的帖子为什么 CS 教师应该停止教授 Java Applet以阅读有关此内容的更多信息。
相反,您应该尝试使用上面推荐的帖子中也介绍过的 Java Swing。
您正在覆盖Applet
paint()
(不添加@Override
注释)方法,而是应该有一个JPanel
和@Override
它是paintComponent()
方法,然后让Applet
显示我之前说过的JPanel
,如上所述在这个气垫船的答案中
与上述点相关,您不是在调用Applet
类的super.paint()
方法
你不知道你的img
是否在你的代码库中,所以调试你的应用程序(使用调试器或一些System.out.println()
调用并检查car.png
的路径是否正确。
为了尽快获得更好的帮助,请发布有效的最小、完整和可验证示例 (MCVE) ,其中包括House
类(如果需要)或简单地绘制图像。
另外作为附带建议,不要使用下划线 ( _
) 来分隔类名称中的单词( App_Main
可以写为AppMain
,这没什么大不了的,但它是Java 命名约定)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.