如何给JButton添加图标,并使图标沾满整个按钮。

将图片放到JButton上,并使其沾满整个按钮。其实方法很简单,只要利用ImageIcon类将图片先加载,然后再设置图片的大小就可以了。具体操作如下,程序中会有注释解释。

import java.awt.Color;
import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Demo1 {
	public static void main(String[] args) {
			JFrame jf = new JFrame("给JButon添加图片,并填充。");
			jf.setLayout(null);
			jf.setSize(1000, 1000);
			jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			JPanel jp = new JPanel();
			jp.setBackground(Color.black);
			jp.setLayout(null);
			
			
			/*--------------------------------------------------------*/
			JButton jb = new JButton();
			jb.setSize(100,100);//设置按钮大小
			String path = "demoGather/image/mood.png";
			//设置图片路径,实践的话根据自己的图片路径另加设置;我这个图片是个笑脸
			ImageIcon icon = new ImageIcon(path);//根据路径创建图标
			Image temp1 = icon.getImage().getScaledInstance(jb.getWidth(),
					jb.getHeight(), icon.getImage().SCALE_DEFAULT);
			//新建图片,大小调制成和按钮大小一样大
			//getScaledInstance()方法返回的是一个图片,后面的参数在程序下有注解。
			icon = new ImageIcon(temp1);
			//将图片另引用为图标
			jb.setIcon(icon);
			//将图标加载到按钮之上
			jp.add(jb);
			/*--------------------------------------------------------*/
			
			jf.setContentPane(jp);
			jf.setVisible(true);
	}
}

运行结果:
在这里插入图片描述

public Image getScaledInstance(int width,int height, int hints)
创建此图像的缩放版本。 将返回一个新的Image对象,它将默认渲染指定的width和height的图像。 即使原始源图像已经完全加载,新的Image对象也可能异步加载。
如果width或height为负数,则代替值来维持原始图像尺寸的宽高比。 如果width和height均为负数,则使用原始图像尺寸。

参数
width - 缩放图像的宽度。
height - 缩放图像的高度。
hints - 用于指示用于图像重采样的算法类型的标志。
结果
图像的缩放版本。
异常
IllegalArgumentException - 如果 width或 height为零。

另请参见:
SCALE_DEFAULT :使用默认的图像缩放算法。

SCALE_FAST :选择一种图像缩放算法,比缩放图像的平滑度更高优先级。

SCALE_SMOOTH :选择一种图像缩放算法,其优先级高于图像平滑度,而不是缩放速度。

SCALE_REPLICATE :使用ReplicateScaleFilter类中体现的图像缩放算法。 Image对象可以自由替代执行相同算法的不同过滤器,而且可以更有效地集成到工具包提供的映像基础架构中。

SCALE_AREA_AVERAGING: 使用区域平均图像缩放算法。 图像对象可以自由地替代执行相同算法的不同过滤器,而且更有效地集成到工具包提供的图像基础设施中。

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值