Java applet中的图像不会显示

时间:2017-01-06 19:04:38

标签: java image graphics applet

我周日(学校)有一个项目,我在显示图像方面遇到了问题。

除了图像之外的其他所有工作,我使用了很多人的代码示例,但没有一个能够工作。

我把图片保存为" 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);



    }
}

1 个答案:

答案 0 :(得分:0)

您的代码中存在一些问题:

  1. 您正在使用Applet

      

    Applet是一种高级且专业的应用程序。在我们周围的现实世界中没有什么位置

    请参阅Andrew Thompson的帖子Why CS teachers should stop teaching Java Applets以了解更多相关信息。

    相反,你应该尝试使用上面推荐的文章中提到的Java Swing。

  2. 您要覆盖paint()的{​​{1}}(不添加@Override注释)方法,而应该有Applet和{{ 1}}它是JPanel方法然后让@Override显示我之前说过的paintComponent(),如此气垫船answer

  3. 中所述
  4. 与上述内容相关,您没有调用Applet类的JPanel方法

  5. 您不知道您的super.paint()是否在您的代码库中,因此调试您的应用程序(使用调试器或一些Applet调用并检查img的路径是正确的。

  6. 为了更好地提供帮助,请发布有效的Minimal, Complete and Verifiable Example (MCVE),其中包含System.out.println()课程(如果需要)或只是绘制图片。

    另外作为附带建议,不要使用下划线(car.png)来分隔类名称中的单词(House可以写成_,这不是什么大不了的事,但它是Java Naming Convention