当前位置: 首页 > 知识库问答 >
问题:

Eclipse错误,Platformer游戏

葛永丰
2023-03-14

我的代码有问题。我刚从Eclipse开始。现在,我正在与Java合作一个平台游戏。我的家庭密码有问题。它位于public static void main(String[]args)之下。谢谢你们的帮助!

错误:

Exception in thread "main" java.lang.IllegalArgumentException: input == null!
    at javax.imageio.ImageIO.read(ImageIO.java:1388)
    at projectOne.<init>(projectOne.java:31)
    at projectOne.main(projectOne.java:104)

代码:

 import java.awt.*; 
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;

public class projectOne extends JPanel
{   
    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    GameEvents gameEvents = new GameEvents();
    Timer gameTimer = new Timer(1, gameEvents);
    int i = 0; 
    int horizontalposition = 500;
    int verticalposition = 500;
    BufferedImage Picture;
    //Don't forget to declare your variables!


    projectOne()
    {
        gameTimer.start();
        this.addKeyListener(gameEvents);

        try 
        {
            Picture = ImageIO.read(getClass().getResource("Homestuck.gif"));
            //The format for this is Picture = ImageIO.read(getClass().getResource("NameOfFile.typeoffile"));
        }
        catch (IOException e)
        {
            System.out.println("Pictures failed to load");
        }
    }

    @Override
    protected void paintComponent(Graphics g)
    {
        g.setColor(Color.blue);
        g.fillRect(0,0,this.getWidth(), this.getHeight());
        g.setColor(Color.red);
        ///g.drawImage(Picture, horizontalposition, verticalposition, 100, 150, null);
        g.drawImage(Picture, 50, 100, 500, 600, null);

        //Here's the format you must follow when drawing simple Java Graphics objects
        //g.fillOval(horizontal location, vertical location, width, height)
    }

    public class GameEvents implements ActionListener, KeyListener
    {

        @Override
        public void actionPerformed(ActionEvent arg0) 
        {
            repaint();
        }

        @Override
        public void keyPressed(KeyEvent key) //stuff inside here happens when a key is pressed
        {
            if(key.getKeyChar()=='d')
            {
                horizontalposition=horizontalposition+20;
            }
            if(key.getKeyChar()=='s')
            {
                verticalposition=verticalposition+20;
            }
            if(key.getKeyChar()=='w')
            {
                verticalposition=verticalposition-20;
            }
            if(key.getKeyChar()=='a')
            {
                horizontalposition=horizontalposition-20;
            }
            if(horizontalposition<0)
            {
                horizontalposition=0;
            }
            System.out.println(key.getKeyChar());
            System.out.println('d');
        }

        @Override
        public void keyReleased(KeyEvent arg0) {

        }

        @Override
        public void keyTyped(KeyEvent arg0) {

        }

    }
    public static void main(String[] args)
    {
        JFrame f = new JFrame("Java Graphics Example Project");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        projectOne p = new projectOne();
        f.setSize(1500,700);
        f.add(p);
        f.setVisible(true);
        p.requestFocusInWindow();
    }

}

共有1个答案

何志业
2023-03-14

在这一行中

Picture = ImageIO.read(getClass().getResource("Homestuck.gif"));

getResource调用必须返回NULL。我建议将其隔离为局部变量,以便于调试

File imageFile = getClass().getResource("Homestuck.gif");
if (imageFile == null) {
  //consider throwing an exception here
} else {
  Picture = ImageIO.read(imageFile);
}
 类似资料:
  • 我试图在Tomcat Server上的Eclipse中运行一个动态Web项目。然而,我得到的错误源服务器没有找到目标资源的当前表示或不愿意透露一个存在。项目的名称是DBAccess。 我的网络。xml位于我的项目中的WebContent\WEB-INF下。 我的servlet类位于我的项目中的src\dbaccess\servlet下。 我应该怎么做才能解决这个问题?

  • 我在eclipse C上遇到了问题。我的项目编译并运行,但eclipse(juno)一直说有数千个错误。例如,我的代码中有一个函数SetRun,eclipse提到了这个错误:“被调用的无效参数”候选者是:void SetRun(?),而SetRun是静态无效SetRun(uint32_t run)类型; 我有很多类似的错误,其中eclipse似乎不理解函数的类型,而是放了一个'?'。 我也有很多这

  • 问题内容: 今天,当我开始日食时,收到以下错误消息: 在“更新索引”期间发生内部错误。Java堆空间 当我检查日志时,有以下异常: 我尝试了以下操作,但均未成功: 在eclipse中增加.ini文件中的内存: -Xmx512m -XX:MaxPermSize=256m 创建环境变量“ MAVEN_OPTS:-Xmx256m” 删除〜/ .cache / m2e Directoy 有人有其他想法吗?

  • 问题内容: 最近,我在Eclipse的内容帮助中遇到了越来越多的问题。在我的一些项目中,内容帮助没有提供任何建议,而在其他项目中,我获得了部分或全部预期的建议。通常,在Eclipse中没有“错误”,但是当我确实收到错误时,这里是一个示例: “内容辅助”未正常完成。请查看日志以获取更多信息。Pb(324)无法解析android.support.v4.app.LoaderManager $ Loade

  • 我刚刚创建了一个新项目,在下面的Maven POM中