gpt4 book ai didi

java - 为什么我不能 getImage()?

转载 作者:行者123 更新时间:2023-11-29 07:07:34 25 4
gpt4 key购买 nike

我在从另一个类(class)获取图像时遇到了一些问题。我以前从未遇到过这个问题。有人可以指出我正确的方向吗。

package main;

import java.awt.Color;
import java.awt.DisplayMode;
import java.awt.Graphics;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JFrame;

public class Main extends JFrame {

public static Character character;

static GraphicsEnvironment graphicsEnvironment;
static GraphicsDevice graphicsDevice;
static DisplayMode displayMode;

private Image i;

public static void main(String[] args) {
displayMode = new DisplayMode(1280, 720, 16, DisplayMode.REFRESH_RATE_UNKNOWN);
graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment();
graphicsDevice = graphicsEnvironment.getDefaultScreenDevice();

Main m = new Main();
m.run();
}

public void run() {
setUndecorated(true);
setResizable(false);

graphicsDevice.setFullScreenWindow(this);

try {
graphicsDevice.setDisplayMode(displayMode);
} catch (Exception e) {
}
}

public void paint(Graphics g) {
g.setColor(Color.cyan);
g.fillRect(0, 0, displayMode.getWidth(), displayMode.getHeight());
i = character.getImage();
g.drawImage(i, 100, 100, this);
}
}

package main;

import java.awt.Image;
import javax.swing.ImageIcon;

public class Character {
private Image i;

public Image getImage() {
i = new ImageIcon(this.getClass().getResource("/raw/images/player1.png")).getImage();
return i;
}
}

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at main.Main.paint(Main.java:52)

它说错误是 i = character.getImage();

我在制作小程序时已经做了很多次,如果我第一次尝试全屏游戏的话,这是

最佳答案

请记住考虑编译器告诉您的内容。

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

NullPointerException 表示引用变量尚未初始化(或者是 == null,就此而言)。在您的情况下,这意味着要调试它,您必须同时检查 i 和 character。如果它是您要返回的图像,则堆栈跟踪会更深入。

由于您正在初始化 i,请回头看看字符。您永远不会将字符设置为任何内容,这意味着您不能在任何声明中使用它。

因此,您的解决方案是在 run()main(String[] args) 中执行 character = new Character(); ,或者您可以将 getImage() 设置为静态,然后说 i = Character.getImage();

关于java - 为什么我不能 getImage()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18094226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com