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

Java引用内部映像文件[重复]

董高洁
2023-03-14

我试图将一个图像设置为一个JLabel,在我的项目中,我有一个文件夹“Images”,其中是logo.png

BufferedImage myPicture = null;

    try {
        myPicture = ImageIO.read(new File("images/logo.png"));
    } catch (IOException e1) {

        e1.printStackTrace();
    }

    JLabel headerImage = new JLabel(new ImageIcon(myPicture));

所以我的问题是如何将映像打包到。jar文件中,并让代码引用它?

共有1个答案

锺离珂
2023-03-14

您需要从类路径而不是从本地磁盘文件系统获取它。

假设images实际上是一个包,并且这个包与当前类在同一个JAR中,那么就这样做:

BufferedImage myPicture = null;
try {
    myPicture = ImageIO.read(getClass().getResource("/images/Report.png"));
} catch (IOException e1) {

    e1.printStackTrace();
}

JLabel headerImage = new JLabel(new ImageIcon(myPicture));
 类似资料:
  • 问题内容: 最近,我碰到了这篇文章,这篇文章很好地介绍了内存映射文件以及如何在两个进程之间共享它。这是读取文件的过程的代码: 但是,我对这种方法有几点评论/问题: 如果我们仅对空文件执行读取器,即运行 这将分配8000个字节,现在将扩展文件。返回的缓冲区的限制为8000,位置为0,因此,读取器可以继续读取空数据。发生这种情况后,阅读器将停止,如。 现在应该是作家了(代码被省去了,因为它很简单,可以

  • 问题内容: 我一直在尝试编写一些非常快速的Java代码,这些代码必须执行很多I / O。我正在使用返回ByteBuffer的内存映射文件: 我遇到的问题是ByteBuffer .array()方法(应返回一个byte []数组)不适用于只读文件。我想编写我的代码,以便它可以与构造在内存中的内存缓冲区和从磁盘读取的缓冲区一起使用。但是我不想将所有缓冲区都包装为ByteBuffer.wrap()函数,

  • 我正在尝试将设备的内部和外部内存中的映像添加到我的应用程序中。我可以打开图库意图并获得文件的路径,但我无法将其转换为ImageView的位图。下面是调用图库的图标的onClick监听器的代码: 下面是OnActivitResult的代码: 我包含了对清单的以下权限: 我一直得到以下错误 我相信它正在失败的部分原因是因为设备只有内部存储。有没有办法从本地存储或外部存储的设备中添加映像?或者我必须做一

  • 问题内容: 我在引用jar文件中的简单图像时遇到了麻烦。 我有一个包tha包含Java文件我有一个包tha包含图像 在我的java文件中,我引用了这样的图像 但是无法找到该图像。在首播中看起来像这样 前导“ /”和分隔符在Windows中不正确。 我检查了此路径,它在MS Explorer中不起作用。 更新 好的,它在某种程度上可以正常工作,但是图像路径不正确,不是对文件的引用,前导斜杠和%20空

  • 读 # mmap_read.py import mmap with open('lorem.txt', 'r') as f: with mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) as m: print('First 10 bytes via read :', m.read(10

  • 警告 该语法不属于 rst ,属于 Sphinx 的配置。 由于某些需要,需要引入外部JS、样式。 此时,你需要在 conf.py 文件中, 增加 html_js_files = ['script.js', 'https://example.com/scripts/custom.js', ('custom.js', {'async