【问题标题】:The picture in Jlabel (with ImageIO)Jlabel中的图片(带ImageIO)
【发布时间】:2012-12-17 19:20:12
【问题描述】:

您能告诉我如何从 URL(例如:从“http://www.google.ru/intl/en_com/images/logo_plain.png”)下载图像到JLabel,但不将其保存在硬盘上?

你能给我一个简单的例子吗? 我需要的只是将图像从URL 放到JLabel(例如 ImageIO)

【问题讨论】:

标签: java swing url jlabel javax.imageio


【解决方案1】:

类似

JLabel label = new JLabel(new ImageIcon(ImageIO.read(new URL("http://www.google.ru/intl/en_com/images/logo_plain.png")));

这会引发一些异常,所以要小心

【讨论】:

  • FWIW: 不用经过ImageIO(虽然不正确),可以直接在ImageIcon构造函数中使用URL
  • @VladPavlov ImageIcon 具有使用后台线程读取目标的好处,这意味着它在下载/加载图像时不会阻塞 EDT。 ImageIO 将仅在图像下载完成后返回。哪个最好取决于您的需求
  • @GuillaumePolet 我不喜欢ImageIcon 的一个方面是,如果提交一个不指向它支持的图像的URL,它将默默地失败。 (虽然我不得不承认,在某些极端情况下,“图像加载”会成为一个复杂而神秘的主题,例如,不要将 ImageIO 用于 1point1c.org/gif/thum/plnttm.gif 等动画 GIF - 你最终只会得到第一帧......)跨度>
【解决方案2】:

由于您似乎不需要使用 ImageIO,即使您多次提到它,这是我所知道的最简单的方法:

label = new JLabel(new ImageIcon(new URL(urlString)));

【讨论】:

  • 需要注意的一点是,如果图像无法加载,ImageIcon 会静默失败。
猜你喜欢
  • 2016-01-24
  • 1970-01-01
  • 2013-11-30
  • 1970-01-01
  • 2015-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多