因为它的原理是图片是覆盖在按钮上,所以当图片的面积小于按钮的面积时,按钮的其余部分就会被显示出来。我写了段代码来修复这个问题(图片最好不要有透明背景的,否则图片的透明部分会被显示成如上图图片覆盖不到的地方)。
代码使用方法是
all a=new all(图片地址,按钮的宽度,按钮的高度)JButton jb=new JButton(a.back())
你也可以吧这段代码打包成jar,以后需要使用就直接import就行了。
class all {//all可以改成别的,但引用时注意就好了。
private int width,height
private Image image=null
private ImageIcon result=null
public all(String path,int width,int height) {
result=new ImageIcon(path)
image=result.getImage()
this.width=width
this.height=height
design()
}
public void design(){
BufferedImage bi=new BufferedImage(width,height,BufferedImage.TYPE_INT_ARGB)
Graphics2D g2d=bi.createGraphics()
g2d.drawImage(image, 0, 0, width, height, null)
image=bi.getScaledInstance(width, height, Image.SCALE_SMOOTH)
result.setImage(image)
}
public ImageIcon back(){
return result
}
}
JButton有构造 方法JButton(Icon icon)
创建一个带图标的按钮。
也有方法 public void setIcon(Icon defaultIcon)
public void setPressedIcon(Icon pressedIcon)
设置按钮的按下图标。
public void setSelectedIcon(Icon selectedIcon)
设置按钮的选择图标。
public void setRolloverIcon(Icon rolloverIcon)
设置按钮的翻转图标。
public void setRolloverSelectedIcon(Icon rolloverSelectedIcon)
设置按钮的翻转选择图标。
public void setDisabledIcon(Icon disabledIcon)
设置按钮的禁用图标。
public void setDisabledSelectedIcon(Icon disabledSelectedIcon)
设置按钮的禁用选择图标。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)