关于Icon,Image,ImageIcon的简单的对比参考
其实就算是现在,我还是有不少地方概念模糊,但是下面的内容是是没有什么问题的。稍微介绍一下,或许有些地方我无法解释:
大部分内容都是查的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的简单的对比参考相关推荐
- 关于Icon,Image,ImageIcon的简单的对比参考 上篇
转载自 关于Icon,Image,ImageIcon的简单的对比参考 上篇 其实就算是现在,我还是有不少地方概念模糊,但是下面的内容是是没有什么问题的.稍微介绍一下,或许有些地方我无法解释: 大部 ...
- 信息抽取(五)实体命名识别之嵌套实体识别哪家强,我做了一个简单的对比实验
实体命名识别之嵌套实体识别哪家强 嵌套实体识别 实体矩阵构建框架 方法比较 GlobalPointer TPLinker Tencent Muti-head Deep Biaffine 实验结果 总结 ...
- JavaGUI编程 -- Swing之Icon、ImageIcon标签获取当前类同一级文件路径的资源
1. Swing之Icon.ImageIcon标签&获取当前类同一级文件路径的资源 1.1 Icon标签 这个是使用画笔画自己心怡的图标 示例: package GUI.Swing;impor ...
- arm服务器测评_某ARM服务器与X86服务器简单性能对比
某ARM服务器与X86服务器简单性能对比 发布时间:2019-01-07 11:22, 浏览次数:816 , 标签: ARM 某ARM服务器与X86服务器简单性能对比 目录 一. 概述.. ...
- 某ARM服务器与X86服务器简单性能对比
某ARM服务器与X86服务器简单性能对比 目录 一. 概述... 2 二. 服务器基本硬件资料:... 2 三. CPU 测试... 3 四. 内存测试 ...
- Asp.Net customErrors与httpErrors的区别 先看一下简单的对比
[转]Asp.Net customErrors与httpErrors的区别 https://www.cnblogs.com/TiestoRay/p/4723996.html 先看一下简单的对比 cus ...
- 家用NAS流媒体平台Plex、Kodi、VideoStation、Jellyfin简单使用对比
暂时没用过EMBY 简单测试对比的网络环境:家庭电信光纤宽带上传速率7M/s,外网IP-DDNS方式(国内域名),局域网千兆网卡,白群218+,6G内存 web.PC端上网方式,电信5G手机提供Wi- ...
- 协同办公系统(OA系统)选型对比参考
协同办公系统(OA系统)选型对比参考 2022年,在疫情不断干扰企事业单位正常办公的背景下,越来越多的企业开始依靠网络进行日常办公,居家办公成为一种必须.而国内的网络办公系统.工具,经过多年的发展,也 ...
- 2022年协同办公系统(OA系统)选型对比参考
2022年协同办公系统(OA系统)选型对比参考 2022年,在疫情不断干扰企事业单位正常办公的背景下,越来越多的企业开始依靠网络进行日常办公,居家办公成为一种必须.而国内的网络办公系统.工具,经过多年 ...
最新文章
- 使用Silverlight2的WebClient下载远程图片
- 基于多视图几何方式的三维重建
- tableau必知必会之用蝴蝶图(旋风图)实现数据之间对比
- 线性代数(矩阵、高斯、线性基……)
- Flask学习 一 基本结构
- linux 如何格式化ext2,Linux的Ext2文件系统(InodeBlock)详解
- 开发者注意!盘一盘 iOS 14 中 Swift 和 SwiftUI 的使用情况
- php打印上传错误信息,PHP上传文件错误信息说明
- 详解超网技术(路由聚合技术)
- 卸载北信源桌面监控攻略Uninstall VRV
- 医院计算机管理办法试行,医院信息工作制度七、计算机中心机房管理制度
- 老电脑可以升级win10系统吗
- 微信小程序返回Qcloud\\Cos\\Exception\\NoSuchBucketException: Cos Error Code: NoSuchBucket, Status Code: 404
- php一年过去多少天,php获取一年有多少天
- 小米10pro使用说明书_入手小米10pro,开箱设置评测,尽在本篇
- 计算机视觉相关学习项目(上)——附MATLAB源代码
- C语言程序设计——函数 梅森尼数形如2^i-1的素数,称为梅森尼数。编程计算并输出指数i在[2,n]中的所有梅森尼数,并统计这些梅森尼数的个数,其中n的值由键盘输入,并且n的值不能大于50。
- think php 广告位,海报广告位管理 - 简单好用的海报和广告管理工具 – 基于ThinkPHP和Bootstrap的极速后台开发框架...
- win10系统tensorflow2.4.0-gpu安装“Not creating XLA devices, tf_xla_enable_xla_devices not set”解决方法
- 【机房练习赛 5.15】奇袭 CF526F Pudding Monsters
热门文章
- python day-15 匿名函数 sorted ()函数 filter()函数 map()函数 递归 二分法...
- 插上翅膀,让Excel飞起来——xlwings(一)
- hdu 4468 spy 极其精彩的一道kmp灵活运用题
- oracle从备份归档日志的方法集中回收
- SharePoint优秀blog文章汇总
- nand flash 扇区的管理以及初始化
- 经典动态规划之过河卒【洛谷 P1002】
- firewalld、netfilter、 netfilter5表5链、iptables介绍
- Spring笔记——2.使用Spring容器
- Python 自带IDLE中调试程序