其实就算是现在,我还是有不少地方概念模糊,但是下面的内容是是没有什么问题的。稍微介绍一下,或许有些地方我无法解释:

大部分内容都是查的Java SE 5.0 API

Icon:

Icon位于javax.swing包中,它是一个接口 public interface Icon,介绍为:一个小的固定大小的图片,通常用于装饰组件

有三个方法:

int getIconHeight();

int getIconWidth();

void paintIcon(Component c,Graphics g,int x,int y);

Icon木有用过,提到它是因为ImageIcon实现了Icon接口(ImageIcon还实现了Accessible,Serializable接口,不过这里不具体说明了)

ImageIcon:

ImageIcon位于javax.swing包中。可以根据Image绘制Icon(这句话很关键),可以使用MediaTracker预载图像(Image也可以)

构造方法不少,举几个常用的:

ImageIcon(Image image);

ImageIcon(String name);

ImageIcon(URL url);

主要方法:

int getIconHeight();

int getIconWidth();

void paintIcon(Component c,Graphics g,int x,int y);

image getImage();

void setImage(Image image);

protect void loadImage(Image image); 加载图像,并在图像已经加载后才返回

要给控件加图片的话,可以很轻松地

JLabel label = new JLabel(new ImageIcon("a.png"));搞定(这个是用来与后面的Image的加图片对比的);

Image:来自于java.awt包中,抽象类Image是表示图形图像的所有类的超类,必须以特定于平台的方式获取图像。

它的主要方法是:Image getScaledInstance(int width,int height,int hints)

hints为:指示用于图像重新取样的算法类型的标志,具体可用的几个参数如下:

SCALE_AREA_AVERAGING 使用 Area Averaging 图像缩放算法。
SCALE_DEFAULT     使用默认的图像缩放算法。
SCALE_FAST     选择一种图像缩放算法,在这种缩放算法中,缩放速度比缩放平滑度具有更高的优先级。
SCALE_REPLICATE    使用 ReplicateScaleFilter 类中包含的图像缩放算法。
SCALE_SMOOTH     选择图像平滑度比缩放速度具有更高优先级的图像缩放算法

我们生成Image对象时需要借助于Toolkit类的getImage方法,而生成Toolkit对象有两种方法,一是借助于Component类的getToolkit()方法,一是借助于Toolkit的静态方法getDefaultToolkit();

所以呢,如果要使用Image类来为组件添加图标的话有两种方法

一种是:

//该类继承了Component或其子类

Image image = getToolkit().getImage("a.png");

JButton jb = new JButton(new ImageIcon(image));

另一种:

Image image = new Toolkit.getDefaultToolkit().getImage("a.png");

JButton jb = new JButton(new ImageIcon(image));

那么,为什么不直接用ImageIcon呢?前者不是更简单吗?

是的,前者更简单。但是Image可以对图像进行加工(比如调节大小使图像变灰等等)。

举一个例子,使用一个大图片来设置为小按钮的背景图:

效果图如下:

我想看了上面的内容,关于Image和ImageIcon的区别您已经有所体会了吧。

关于他们的互相的转换,也希望大家能够记住,使用起来会相当顺手:

Image的图给ImageIcon

Image image

ImageIcon imageIcon

1.new ImageIcon(image);

2.imageIcon.getImage(image);

3.很可惜的,loadImage方法为protected,我们使用不到了。

ImageIcon的图给Image

1.image = imageIcon.getImage();

作为新手的我,最近在看《设计模式》,我想恐怕要过很久了,那个时候我们从设计的角度来看这三个类

今天差不多就说到这里吧。演示Image和ImageIcon使用的例子已经上传。

关于Icon,Image,ImageIcon的简单的对比参考相关推荐

  1. 关于Icon,Image,ImageIcon的简单的对比参考 上篇

    转载自   关于Icon,Image,ImageIcon的简单的对比参考 上篇 其实就算是现在,我还是有不少地方概念模糊,但是下面的内容是是没有什么问题的.稍微介绍一下,或许有些地方我无法解释: 大部 ...

  2. 信息抽取(五)实体命名识别之嵌套实体识别哪家强,我做了一个简单的对比实验

    实体命名识别之嵌套实体识别哪家强 嵌套实体识别 实体矩阵构建框架 方法比较 GlobalPointer TPLinker Tencent Muti-head Deep Biaffine 实验结果 总结 ...

  3. JavaGUI编程 -- Swing之Icon、ImageIcon标签获取当前类同一级文件路径的资源

    1. Swing之Icon.ImageIcon标签&获取当前类同一级文件路径的资源 1.1 Icon标签 这个是使用画笔画自己心怡的图标 示例: package GUI.Swing;impor ...

  4. arm服务器测评_某ARM服务器与X86服务器简单性能对比

    某ARM服务器与X86服务器简单性能对比 发布时间:2019-01-07 11:22, 浏览次数:816 , 标签: ARM 某ARM服务器与X86服务器简单性能对比 目录 一.       概述.. ...

  5. 某ARM服务器与X86服务器简单性能对比

    某ARM服务器与X86服务器简单性能对比 目录 一.       概述... 2 二.       服务器基本硬件资料:... 2 三.       CPU 测试... 3 四.       内存测试 ...

  6. Asp.Net customErrors与httpErrors的区别 先看一下简单的对比

    [转]Asp.Net customErrors与httpErrors的区别 https://www.cnblogs.com/TiestoRay/p/4723996.html 先看一下简单的对比 cus ...

  7. 家用NAS流媒体平台Plex、Kodi、VideoStation、Jellyfin简单使用对比

    暂时没用过EMBY 简单测试对比的网络环境:家庭电信光纤宽带上传速率7M/s,外网IP-DDNS方式(国内域名),局域网千兆网卡,白群218+,6G内存 web.PC端上网方式,电信5G手机提供Wi- ...

  8. 协同办公系统(OA系统)选型对比参考

    协同办公系统(OA系统)选型对比参考 2022年,在疫情不断干扰企事业单位正常办公的背景下,越来越多的企业开始依靠网络进行日常办公,居家办公成为一种必须.而国内的网络办公系统.工具,经过多年的发展,也 ...

  9. 2022年协同办公系统(OA系统)选型对比参考

    2022年协同办公系统(OA系统)选型对比参考 2022年,在疫情不断干扰企事业单位正常办公的背景下,越来越多的企业开始依靠网络进行日常办公,居家办公成为一种必须.而国内的网络办公系统.工具,经过多年 ...

最新文章

  1. 使用Silverlight2的WebClient下载远程图片
  2. 基于多视图几何方式的三维重建
  3. tableau必知必会之用蝴蝶图(旋风图)实现数据之间对比
  4. 线性代数(矩阵、高斯、线性基……)
  5. Flask学习 一 基本结构
  6. linux 如何格式化ext2,Linux的Ext2文件系统(InodeBlock)详解
  7. 开发者注意!盘一盘 iOS 14 中 Swift 和 SwiftUI 的使用情况
  8. php打印上传错误信息,PHP上传文件错误信息说明
  9. 详解超网技术(路由聚合技术)
  10. 卸载北信源桌面监控攻略Uninstall VRV
  11. 医院计算机管理办法试行,医院信息工作制度七、计算机中心机房管理制度
  12. 老电脑可以升级win10系统吗
  13. 微信小程序返回Qcloud\\Cos\\Exception\\NoSuchBucketException: Cos Error Code: NoSuchBucket, Status Code: 404
  14. php一年过去多少天,php获取一年有多少天
  15. 小米10pro使用说明书_入手小米10pro,开箱设置评测,尽在本篇
  16. 计算机视觉相关学习项目(上)——附MATLAB源代码
  17. C语言程序设计——函数 梅森尼数形如2^i-1的素数,称为梅森尼数。编程计算并输出指数i在[2,n]中的所有梅森尼数,并统计这些梅森尼数的个数,其中n的值由键盘输入,并且n的值不能大于50。
  18. think php 广告位,海报广告位管理 - 简单好用的海报和广告管理工具 – 基于ThinkPHP和Bootstrap的极速后台开发框架...
  19. win10系统tensorflow2.4.0-gpu安装“Not creating XLA devices, tf_xla_enable_xla_devices not set”解决方法
  20. 【机房练习赛 5.15】奇袭 CF526F Pudding Monsters

热门文章

  1. python day-15 匿名函数 sorted ()函数 filter()函数 map()函数 递归 二分法...
  2. 插上翅膀,让Excel飞起来——xlwings(一)
  3. hdu 4468 spy 极其精彩的一道kmp灵活运用题
  4. oracle从备份归档日志的方法集中回收
  5. SharePoint优秀blog文章汇总
  6. nand flash 扇区的管理以及初始化
  7. 经典动态规划之过河卒【洛谷 P1002】
  8. firewalld、netfilter、 netfilter5表5链、iptables介绍
  9. Spring笔记——2.使用Spring容器
  10. Python 自带IDLE中调试程序