Java JLabel不';不显示图像

Java JLabel不';不显示图像,java,image,jlabel,Java,Image,Jlabel,我不确定问题出在哪里。它在小路上吗?虽然代码语法中没有任何错误,但图像不会显示。我应该提供整个路径,还是将图像放在目录中并调用其名称?多谢各位 public class NetworkingGame { private JFrame jfrm; NetworkingGame(){ jfrm = new JFrame("Angry Painters"); jfrm.setSize(800, 480); jfrm.setDefaultCloseOperation(JFra

我不确定问题出在哪里。它在小路上吗?虽然代码语法中没有任何错误,但图像不会显示。我应该提供整个路径,还是将图像放在目录中并调用其名称?多谢各位

public class NetworkingGame {

private JFrame jfrm;

NetworkingGame(){
    jfrm = new JFrame("Angry Painters");
    jfrm.setSize(800, 480);
    jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jfrm.setVisible(true);

}// end of constructor

public void ImageLoading(){
    ImageIcon i = new ImageIcon("C:/Users/TOSHIBA/Documents/NetBeansProjects/NetworkingGame/build/classes/angry-painters.jpeg");
    JLabel jl = new JLabel(i);
    jfrm.add(jl);
}

public static void main(String[] args) throws Exception{

    SwingUtilities.invokeLater(new Runnable(){

        @Override
        public void run(){

            NetworkingGame ng = new NetworkingGame();
            ng.ImageLoading();
        } // end of run method
    }); // end of Runnable

   }//end of main method
}//end of class NetworkingGame

不要将文件路径用作图标位置,因为这仅适用于您的计算机。你真的不能指望世界上所有的机器都有C:/Users/TOSHIBA…angle-painters.jpeg在正确的位置

复制您使用的源代码(.java)类旁边的文件,然后调用

 new ImageIcon(getClass().getResource("angry-painters.jpeg"));

生成器应该将图像资源复制到类文件夹本身。

我认为您的代码不喜欢绑定图像的方式

假设用户将图像/图标放在源文件夹中

ImageIcon i=new javax.swing.ImageIcon(getClass().getResource("myimage.jpeg"))
InputStream stream = this.getClass().getClassLoader().getResourceAsStream("/images/image.jpg");
BufferedImage bufferedImage=ImageIO.read(stream);
ImageIcon icon= new ImageIcon(bufferedImage);
或者如果在源文件夹中创建文件夹

ImageIcon i=new javax.swing.ImageIcon(getClass().getResource("myimage.jpeg"))
InputStream stream = this.getClass().getClassLoader().getResourceAsStream("/images/image.jpg");
BufferedImage bufferedImage=ImageIO.read(stream);
ImageIcon icon= new ImageIcon(bufferedImage);

尝试使用如下路径:

jLabel1.setIcon(new ImageIcon("c:\\Users\\xyz\\Documents\\NetBeansProjects\\game\\src\\images.jpg"));
更新

如果dis也不起作用,那么

    jLabel.setIcon(new ImageIcon(getClass().getResource("/image.jpg")));
    jLabel.setText("jLabel");

应该。
image.jpg
应该在IntellijIdea中的项目文件夹中。

。2021年 在我的例子中,它只是不读取图像文件。 要解决这个问题:

1。在项目根目录中创建res文件夹(“src的文件夹同级”)

2.通过+,在文件->项目结构->工件中处理工件-

3。文件->项目结构->工件->输出布局选项卡将最终jar的结构设置为'res'文件夹、应用程序根包文件夹(比如'com')和'META-INF'文件夹。用应用程序/输出文件夹中的内容和1中提到的“res”中的内容填写。步骤“res”

4.之后,在“项目结构”“模块”中,右键单击“资源”,并将其标记为资源

5.声明如下图像:

ImageIcon loadingLcl=newimageicon(this.getClass().getResource(“/res/32.gif”)
在放入JLabel之前


另外,在初始化应用程序时最好只读取一次图像。否则,有时它会抛出IOException。所以如果可能的话,一开始就处理好。就像他们在游戏制作中所做的那样。

这条路径中有图像吗?@PradeepSimha是的,
愤怒的画家。jpeg
就是图像:)试试这个:
ImageIcon i=newimageicon(新的URL(“C:/Users/TOSHIBA/Documents/NetBeansProjects/NetworkingGame/build/classes/angry painters.jpeg”)如果文件不存在,它将抛出异常。仍然不工作,我将文件移动到您提到的位置并更改了代码!是
线程“AWT-EventQueue-0”java.lang.NullPointerException中的异常
此异常意味着找不到图像,因此getResource返回null。如果它真的在那个文件夹里,问起来很愚蠢,但是你能检查一下文件名的拼写吗?我检查过了。他们是一样的(这并不愚蠢,这可能是我的致命错误。谢谢)。我把文件和源代码放在了一起,不是应该放在这里吗?最后一件事,检查生成器是否正在沿着编译的类将其复制到类文件夹中。如果没有,则需要通过IDE设置来实现。默认情况下应复制。是您提到的代码,而不是
ImageIcon i=new ImageIcon(“path/of/image.jpeg”)?@InspiringProgramming yeah.ImageIcon i=new javax.swing.ImageIcon(getClass().getResource(“myimage.jpeg”))如何添加此
InputStream-stream=this.getClass().getClassLoader().getResourceAsStream(“/images/image.jpg”)到JLabel然后?BuffereImage BuffereImage=ImageIO.read(流);ImageIcon图标=新的ImageIcon(BuffereImage);我不认为这是因为分离器。“正斜杠适用于所有系统”文档中说。是的,没错,但是如果路径是正确的,并且也有图像,那么值得一试