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