Java 如何在NetBeans中添加来自src的照片?

Java 如何在NetBeans中添加来自src的照片?,java,netbeans,Java,Netbeans,我把这样的映像文件放在NetBeans中 我试着在最终录制中添加这样的图像 new JLabel.setIcon(new ImageIcon("..\\FinalRecreation\\VOSB_01.jpg")); 但是,我知道为什么它不起作用,图像永远不会出来。您需要将数据作为资源加载。当您作为资源加载时,您让类加载器在类路径中搜索文件,这样它就可以包含在jar中并随应用程序一起分发 假设您的图像文件名位于名为resources的顶级包中,下面的代码将用于加载BuffereImage,适

我把这样的映像文件放在NetBeans中

我试着在最终录制中添加这样的图像

new JLabel.setIcon(new ImageIcon("..\\FinalRecreation\\VOSB_01.jpg"));

但是,我知道为什么它不起作用,图像永远不会出来。

您需要将数据作为资源加载。当您作为资源加载时,您让类加载器在类路径中搜索文件,这样它就可以包含在jar中并随应用程序一起分发

假设您的图像文件名位于名为resources的顶级包中,下面的代码将用于加载BuffereImage,适应读取ImageIcon需要一些努力,但是打开资源的InputStream的代码应该是相同的

编辑:看起来ImageIcon有一个获取图像的构造函数,所以您应该能够将BuffereImage传递到该构造函数中


使用类似ImageIO.read(getClass().getResource(“/FinalRecreation/VOSB_01.jpg”))的方法加载图像,您需要将结果包装在一个ImageIcon中,但这应该可以让您启动您应该按实际父目录名删除
;这可能会解决您的问题。但是如果我使用实际的目录,当我将它们转换为.jar并提供给其他人时,整个过程不会停止吗?
String name = "resources/your_image.jpg";
try(BufferedInputStream input = new BufferedInputStream(
    YourClass.class.getClassLoader().getResourceAsStream(name));) {
    if(input != null) {
        ImageIcon iicon = new ImageIcon(ImageIO.read(input));
        // do something with iicon
    }
    else {
        // could not find resource - do something 
    }
} catch (Exception ex) {
    // problem loading resource - do something
}