gpt4 book ai didi

java - 不知道为什么图像没有显示

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

所以我导入了一张图像作为背景,由于某种原因它给了我:

 Uncaught error fetching image:
java.lang.NullPointerException
at sun.awt.image.URLImageSource.getConnection(Unknown Source)
at sun.awt.image.URLImageSource.getDecoder(Unknown Source)
at sun.awt.image.InputStreamImageSource.doFetch(Unknown Source)
at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
at sun.awt.image.ImageFetcher.run(Unknown Source)

有人可以帮助我吗?

 import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class PixelLegendsMain extends JFrame implements ActionListener{
public void actionPerformed(ActionEvent e){
}
public static void main(String[ ] args)throws Exception{
PixelLegendsMain plMain = new PixelLegendsMain();
arenaBuild arena = new arenaBuild();
plMain.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);


plMain.add(arena);
plMain.setSize(600,460);;
plMain.setVisible(true);
plMain.setResizable(false);
plMain.setLocation(200, 200);
}
}

这是主类,这是:

 import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.Font;
import java.awt.Graphics;
import java.net.URL;
import java.io.*;
import javax.swing.Timer;

public class arenaBuild extends JPanel{
String picPath = "pictures/";
String[] fileName = {picPath+"stageBridge.png", picPath+"turret.png"};
ClassLoader cl = arenaBuild.class.getClassLoader();
URL imgURL[] = new URL[2];
Toolkit tk = Toolkit.getDefaultToolkit();
Image imgBG;
public arenaBuild()throws Exception{
for (int x=0;x<2;x++){
imgURL[x]= cl.getResource(picPath+fileName[x]);
}
imgBG = tk.createImage(imgURL[0]);
}
public void paintComponent(Graphics g){
g.drawImage(imgBG,0,0,600,460,0,0,600,460, this);
}
}

这就是我调用图像的地方。我对此很陌生,所以如果有人可以解释为什么会发生这种情况并帮助我修复它,我将不胜感激:D

最佳答案

最可能的解释是您的 tk.createImage(imgURL[0]) 调用正在传递 null URL。

怎么会发生这种事?那么 ClassLoader.getResource(String) 方法是 specified如果找不到资源,则返回 null ...所以问题似乎是您为第一个资源使用了错误的路径。

您使用的路径似乎是这样的:“pictures/pictures/stageBridge.png”:

  • 您似乎不太可能真正将图像放入名为“pictures/pictures”的目录中。

  • 由于您是在 ClassLoader 对象(而不是 Class 对象)上调用该方法,因此您使用的概念上的相对路径将被视为绝对路径;即您将得到“/pictures/...”而不是“/PixelLegendsMain/pictures/...”

关于java - 不知道为什么图像没有显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13782425/

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