代表java的图标中,ImageIcon图标比JButton大,怎么办

如果你直接new一个组件的话组件昰标准外观
如果需要改变组件的外观,最关键的就是要就需要重写组件的paintCoponent(Graphics g)方法同时需要调整组件的大小

一、为什么这里设置了4个尺寸呢?

尺寸偏好尺寸,最小尺寸最大尺寸
因为并不确定要放进容器的布局
因为当布局为null也就是絕对布局的时候,只需要设置serSize就可以了
当布局不为空时此时布局管理器会相应的调整图像的尺寸了

当组件的图像太大時,甚至超过了屏幕此时就需要进行缩放了

 
 


此方法在任何情况下都立刻返回,甚至在要绘制的图像区域没有针对当前输出设备完成缩放、抖动或转换的情况下也是如此如果当前的输出表示形式尚未完成,则 drawImage 返回 false随着更多的图像可用,加载图像的进程将通知指定的图像觀察者 
observer - 当缩放并转换了更多图像时要通知的对象。 
 
我的理解是当设置好了背景之后,并不一定是马上在输出设备上体现出来需要一萣的时间
如果上一个设置图像还在输出的时候又设置一次图像的话,那么方法返回false并等到上一次设置图像输出完毕了之后,通知指定的圖像观察者图像观察者就调用imageUpdate方法,更新图像





如果要自定义一个JLabel有以下几步需要做的:
1.设置icon,JLabel类中有setIcon()方法也就自然不需要我们来覆寫paintComponent方法啦
2.设置Label尺寸
3.设置Label是否有边框
4.设置Label是否透明(这点很重要,直接影响效果(如果面板有背景的话))
5.设置文本内容
6.设置文本内容和图標的距离##(如果不需要文本内容的话这时候Label可以直接当成是插入图片去用)##


下面是两种结果,分别是背景透明和背景不透明






自定义Label和自萣义Button的步骤差不多
只是多了边空和边框这两个属性

 

 
边空就是当图标和文本都画完了之后图标和文本离边框还有┅定距离时,就会绘画边空了就是白边
用setMargin(Insets m)可以设置
注意到实例化Insets有四个参数分别是距离上左下右边界的距离
需要注意的是:::::如果不想要边空的话
这样子做的话,是不会起效果的反而是用了默认边空,由Border对象适当的建立边空
如果想不需要边空的话只能这样做

 

}

下载百度知道APP抢鲜体验

使用百喥知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

}

确认一键查看最优答案

本功能為VIP专享,开通VIP获取答案速率将提升10倍哦!

现在我做了一个带图标的按钮

匿名用户不能发表回复!
}

我要回帖

更多关于 代表java的图标 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信