【问题标题】:Read images from resource folder of eclipse without using Image name从 Eclipse 的资源文件夹中读取图像而不使用图像名称
【发布时间】:2015-11-01 05:44:32
【问题描述】:

我想在不使用图像名称的情况下从 eclipse 的资源文件夹中读取图像。截至目前,我正在从当前目录读取它并采用绝对路径(photoPath),以便我可以在 JFrame 的其他面板中重现图像。但是,如果我让可执行 jar 开始从当前目录获取图像,我的图像文件夹就不会出现。这是我的图像选择代码

    imageChooser = new JButton("ImageChooser");
    panel1.add(imageChooser);
    fc = new JFileChooser();
    imageLabel = new JLabel();
    imageChooser.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent e) {

            fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
            fc.setCurrentDirectory(new File("."));
            int result = fc.showOpenDialog(imageChooser);

            if (result == JFileChooser.APPROVE_OPTION) {

                currentFile = fc.getSelectedFile();
                imageLabel.setIcon(new ImageIcon(currentFile.toString()));
                panel1.add(imageLabel);
                panel1.validate();
                photoName=fc.getSelectedFile().getName();
                photoPath = currentFile.getAbsolutePath();
            }
        }
    });

这是我的结构

【问题讨论】:

  • 列出嵌入在你的jar应用程序中的资源特别容易,它需要你对应用程序的状态做出很多假设。在这些情况下,我倾向于使用另一个文件,按名称列出所有资源。我要么手动更新文件,要么使用某种构建自动化来生成文件。这意味着我的整个入口点都围绕单个文件,而不是需要对 Jar 文件的位置(或哪个 jar 文件包含图像)做出假设
  • 我真的很抱歉,但无法理解你!如果我做 getclass(). getResources() 我需要指定图像名称,。你能给我一些建议吗?
  • 因此,将文件的名称放入一个文本文件中,该文件也嵌入在您的应用程序中,它应该包含图像列表。使用它可以让您在运行时加载图像而无需知道名称。 For example
  • 你是把图片打包到你的jar还是单独的文件夹里?
  • currentFile = fc.getSelectedFile(); imageLabel.setIcon(new ImageIcon(currentFile.toString())); 我希望人们能够真正阅读 Java 文档以了解他们使用的方法和构造函数。如果你在这种情况下,你可能已经注意到 ImageIcon 接受 File 以及 String..

标签: java eclipse image swing


【解决方案1】:

使用.getResource()

例子:

new ImageIcon(getClass().getResource("/images/button.png"))

这也适用于 JAR。

【讨论】:

  • 嗨,但我不能给出必须是动态的文件名
猜你喜欢
  • 2020-06-22
  • 1970-01-01
  • 2022-08-23
  • 2013-03-12
  • 2016-06-14
  • 2017-08-14
  • 1970-01-01
  • 1970-01-01
  • 2012-10-24
相关资源
最近更新 更多