Java:ImageIcon 与图像差异

Posted

技术标签:

【中文标题】Java:ImageIcon 与图像差异【英文标题】:Java: ImageIcon vs. Image difference 【发布时间】:2012-06-27 02:15:14 【问题描述】:

谁能以菜鸟的方式向我解释 Java 中 ImageIconImage 类/对象之间的区别是什么?谢谢

【问题讨论】:

这是作业吗?回答此问题所需的所有内容都应记录在 javadocs 中。 不,这不是家庭作业。对于这个问题,就像我关于 Java 的大多数其他问题一样,信息可以在 javadocs 中找到。但是,如果我能理解 javadocs 中的所有内容,我就不需要任何书籍、论坛、谷歌甚至互联网。 【参考方案1】:

它们的性质和应用是不同的。 Image 是表示图形图像的所有类的抽象超类。 ImageIcon 是Icon 接口的实现,它使用Image 作为其源。

编辑:将Image 视为可以 呈现的东西,将ImageIcon 视为 呈现为Icon 的东西,当它的@ 987654332@方法被调用。

编辑:上面的链接将带您到 JDK 6 api。这些链接会将您带到 JDK 8 api:Image 和 ImageIcon。

【讨论】:

好吧,ImageIcon 对象有一个底层的Image 对象,并提供了一个额外的层来处理这个图像?此外,Icon 可以通过多种方式实现,而不必具有底层图像(例如绘制标签或矩形)。还是我错了?我只是不完全理解,如果图标只是一个小图像,为什么要为此设置两个不同的类。 @LeNoob Icon 通常用于装饰组件(标签、按钮等),即它们被涂在某物上。另一方面,Image 不仅用于显示,还可以用于绘制。查看Images 教程中的一些示例。 How to Use Icons 也很有用。【参考方案2】:

您可以缩放和保存 Image,但不能使用 ImageIcon 来做到这一点。要在 GUI 中创建图片,您通常必须使用 ImageIcon,但如果您不想这样做,Image 应该会更好。

【讨论】:

但是如果ImageIcon有底层图片,我怎么不能保存和缩放呢?

以上是关于Java:ImageIcon 与图像差异的主要内容,如果未能解决你的问题,请参考以下文章

java程序,new ImageIcon(getClass().getResource("/images/密码登陆.jpg")),在导出jar后,jar包里面没有

如何将图标转换为图像

我如何将javax.swing.ImageIcon绘制为JavaFX .fxml呈现的用户界面?

如何将 C# 中的 Image 对象制作到 Windows Phone 8.1

Java 图标图像最大文件大小

图像与Bitmap类