当前位置: 首页 > 知识库问答 >
问题:

编译图像时出现的问题

田嘉慕
2023-03-14

我一直在互联网上努力研究如何在编译成可运行的jar后显示图像图标。我发现这个问题太晚了,我以前在eclipse中运行过很多次程序,一切都正常,现在6个月后项目完成了,我用eclipse编译了我的程序,没有音频或图像工作。在网上阅读,它说关于图片文件夹的位置应该在罐子里,但我的没有放在那里?

我在源文件夹中移动了图片文件夹,但它不起作用。我有一种感觉,这可能与资源的路径有关。。。但这只是猜测。

我已经建立了一个简单的程序,具有相同的结果。。。在eclipse中运行时有效,但在编译时无效。有人可以通过修改下面的代码给我举个例子吗。提前谢谢。

来源代码:

package ImageIcon;

import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Gui {

public static JLabel c;

public Gui(){
    JFrame f = new JFrame();

    JPanel p = new JPanel();
    p.setBounds(0, 0, 120, 200);
    p.setBackground(Color.black);
    p.setLayout(null);

    JPanel bg = new JPanel(new BorderLayout());
    bg.setBounds(50, 50, 15, 15);
    bg.setBackground(Color.white);

    ImageIcon a = new ImageIcon("images/success.jpg");
    c = new JLabel(a);

    f.setSize(100, 200);
    f.setLayout(null);
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);

    f.add(p);
    p.add(bg);
    bg.add(c);
}

public static void main(String[] args) {
    new Gui();
}

}

共有2个答案

舒仲渊
2023-03-14

从您的屏幕截图来看,图像存在于名为“图像”的文件夹中。将它放在类路径中的一个文件夹中:src/images/success。jpg及电话:

ImageIcon a = new ImageIcon(getClass().getResource("/images/success.jpg")); 
景元忠
2023-03-14

使用当前的目录设置,图像目录甚至不会内置到jar中。试着提取它,你很可能会看到它不在那里。

您可以通过这样一个事实来判断,它在文件夹中没有小包标志,正如在这里看到的资源

类路径(/jar)中内置的唯一默认目录是src。我们需要将资源放入src

或者将生成路径配置为包含资源中的文件。一旦我们这样做,我们将看到文件夹图标内的小软件包图标。这就是我们知道文件在构建路径上的方式

>

  • 第一张图片:不行,它不起作用(这是你目前的困境)

    第二张图片:

    ImageIcon icon = new ImageIcon(
             getClass().getResource("/resources/stackoverflow.png"));
    

    第三张图片:

    ImageIcon icon = new ImageIcon(
             getClass().getResource("/stackoverflow.png"));
    

    要配置生成路径以使用第三个选项,请按照此答案中的示例2中的说明进行操作

  •  类似资料:
    • 我只是想测试JAVACPP并尝试了我的eclipse中网页中的第一个示例: http://code.google.com/p/javacpp/(Legacyclass和Legacy库) 我一打字: javac-cp libs\javacpp.jar:. src\LegacyLibrary.java 在命令行中,我得到以下错误消息: src\LegacyLibrary.java: 1:错误:包com

    • 问题内容: 我想使用更新版本的l2switch插件,但是当我尝试编译项目时,出现以下错误: 我认为问题不在我的.m2文件夹中,因为我能够正确地编译Openflowplugin项目。另外我正在使用Java 8.0,我的操作系统是Windows 10(我正在使用Maven插件通过提示符进行编译)我正在使用的命令是mvn clean install -U -DskipTests ps:我还没有编辑l2s

    • 我用python scrapy编写了一个脚本,从一个网站下载一些图片。当我运行我的脚本时,我可以在控制台中看到图像的链接(它们都是格式)。然而,当我打开下载完成时应该保存图像的文件夹时,我什么也没有看到。我犯错的地方? 这是我的蜘蛛(我正在从Sublime文本编辑器运行): 这是我在中为要保存的图像定义的内容: 为了让事情更清楚: 我希望保存图像的文件夹名为,我已将其放在项目下的文件夹中。 文件夹

    • 我有一个maven项目,并尝试进行maven安装。在执行maven安装时,我遇到以下错误。 上面是我在上面的错误消息包中尝试做一个干净install.The指定的包时收到的错误com.cx.util作为itt.jar.的一部分提供。该jar已作为依赖项添加到该项目中。我在eclipse中没有看到任何错误。只有在尝试安装时,我才收到上面的编译错误。 下面的分析完成了吗 检查依赖项,jar作为pom中

    • 我试图使用scalapb从protobuf生成case类。但是,我目前编译错误。 我有我的scalapb。sbt如下: 还有,我的构建。sbt如下: 此外,我还创建了一个示例。原型文件如下: 现在,当我尝试时,我收到以下错误: 有人能帮我解决这个错误吗? 我对scalapb的版本也有点困惑。萨米特。scalapb(https://scalapb.github.io/sbt-settings.htm

    • 我在下载图像和更新ImageView时遇到问题,我正在使用ExecutorServices下载图像,但我面临的问题是,作为场景,我正在使用基本适配器在列表中显示Imageview。图像被下载,但这两个图像都只在firstImage View中更新。 所以位图在同一个imageView中得到了更新,有人遇到过类似的问题吗 例如,我正在下载2个图像,它正在创建2个ImageDownloader实例,所