我周日(学校)有一个项目,我在显示图像方面遇到了问题。
除了图像之外的其他所有工作,我使用了很多人的代码示例,但没有一个能够工作。
我把图片保存为" car.png"在项目目录中。
你能告诉我哪里错了吗?
这是一个项目,我需要制作一个Java Applet,显示一条街道上有一些建筑物,一条道路和一辆汽车在路上,但我无法显示汽车图像。< / p>
非常感谢你的帮助!
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);
}
}
答案 0 :(得分:0)
您的代码中存在一些问题:
您正在使用Applet
Applet是一种高级且专业的应用程序。在我们周围的现实世界中没有什么位置
请参阅Andrew Thompson的帖子Why CS teachers should stop teaching Java Applets以了解更多相关信息。
相反,你应该尝试使用上面推荐的文章中提到的Java Swing。
您要覆盖paint()
的{{1}}(不添加@Override
注释)方法,而应该有Applet
和{{ 1}}它是JPanel
方法然后让@Override
显示我之前说过的paintComponent()
,如此气垫船answer
与上述内容相关,您没有调用Applet
类的JPanel
方法
您不知道您的super.paint()
是否在您的代码库中,因此调试您的应用程序(使用调试器或一些Applet
调用并检查img
的路径是正确的。
为了更好地提供帮助,请发布有效的Minimal, Complete and Verifiable Example (MCVE),其中包含System.out.println()
课程(如果需要)或只是绘制图片。
另外作为附带建议,不要使用下划线(car.png
)来分隔类名称中的单词(House
可以写成_
,这不是什么大不了的事,但它是Java Naming Convention)