gpt4 book ai didi

java - 在java中显示图像

转载 作者:行者123 更新时间:2023-12-01 21:55:28 25 4
gpt4 key购买 nike

public void loadStdImage() throws IOException
{
Image image = ImageIO.read(this.getClass().getResource("/Resources/Images/Student/Capture.png")); //Line 350
ImageIcon icon = new ImageIcon(image);
JLabel lblImage = new JLabel(icon);
lblImage.setIcon(icon);
lblImage.setBounds(753, 50, 149, 171);
add(lblImage);
}

我尝试了很多事情......但没有任何效果。持续显示以下运行时错误

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
at View.Student.loadStdImage(Student.java:350)

项目文件夹结构为:

Project Explorer view in Eclipse for a project

编辑:找到了解决方案。参见下图和上图资源文件夹图标的变化。我将资源文件夹添加到 Java 构建路径中。右键单击您的项目,转到属性,然后选择“Java 构建路径”,从那里将您的文件夹添加到 java 构建路径。干杯 enter image description here

最佳答案

欢迎来到SO。由于您是新来的,请阅读此内容 - https://stackoverflow.com/help/mcve

现在让我帮你解决这个问题。

我有标准的 Eclipse 项目:

Eclipse project

我的测试类看起来像(最小):

package q34460547;

import java.awt.Image;
import java.io.IOException;

import javax.imageio.ImageIO;

public class LoadTest {

public static void main(String[] args) throws IOException {
new LoadTest().loadStdImage();
}

public void loadStdImage() throws IOException {
Image image = ImageIO.read(this.getClass().getResource("/ScreenShot005.png"));
}

}

现在,当我使用时

ImageIO.read(this.getClass().getResource("/ScreenShot005.png"));

图像是从 Eclipse 中所谓的源文件夹加载的。

当我使用时

ImageIO.read(this.getClass().getResource("ScreenShot005.png"));

图像从 LoadTest.java 文件所在的文件夹加载(准确地说,它也被编译到同一文件夹 - 在 Eclipse 中是 bin)。

您可以在这里找到更多信息 - What is the difference between Class.getResource() and ClassLoader.getResource()?

编辑:

图像必须位于类路径上(使用Class.getResource时),这就是它不从Resources文件夹加载的原因。有两个选项,使用另一个版本的 ImageIO.read() 或将您的 Resources 文件夹设为源文件夹:

Project properties - source folders in Eclipse

关于java - 在java中显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34460547/

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