繁体   English   中英

为什么要使用ImageIcon而不是Image?

[英]Why use ImageIcon rather than Image?

在什么情况下我想使用ImageIcon表示图片文件而不是Image对象? 我一直在搜索,并且看到有人说您在处理将成为GUI一部分的图像时会使用ImageIcon对象,但是我仍然不了解此含义。 换句话说,这两种对象类型之间的实际区别是什么?它们分别适合什么情况?

Image是代表图片数据模型的对象。 ImageIcon是一个Swing组件,可在屏幕上绘制Image ,并且您必须为其提供适当的Image以进行绘制(通过传入现有Image或提供足够的信息来查找和加载图像)。

该关系类似于StringJTextField之间的关系; 一个是数据的表示形式,另一个是将其绘制在屏幕上的图形组件。

Image是代表位图的对象:不同颜色的像素阵列。

Icon是可以绘制矩形图形的对象。 由于它是一个界面(也是一个简单的界面),因此您可以想象出许多不同类型的图标:绘制预定义的矢量图形,即时生成图像等。因此,它是一种有用的抽象,并且被Swing组件(按钮,标签)使用。 )。

ImageIcon是一个Icon ,但是HAS-A Image 也就是说-它根据特定图像绘制图形。

当您说“为什么我应该使用ImageIcon而不是Image”时,您会忽略这一点:实际上,您在使用Image都是这样。

实现是不拖延Swing线程。

使用MediaTracker预加载从URL,文件名或字节数组创建的图像,以监视图像的加载状态。

基本上,您可以为按钮设置一个ImageIcon,而无需实际强制事先加载它。

这可以通过使用非常大的图标并将“框架”的图标设置为此图像来看到。 设置为可见后,可能要花几秒钟才能真正出现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM