方法1:JButton b1=new JButton()
b1.setOpaque(false)
b1.setColor(new Color(2,2,2)) //此颜色值随便设置,只起占位作用,但是必须加上此句,否则不会出现透明背景效果。
b1..setIcon(new ImageIcon("bin/filechooser/image/rec.gif"))
方法2:JButton b2=new JButton()
b2.setContentAreaFilled(false) //只须加上此句
b2.setIcon(new ImageIcon("bin/filechooser/image/rec.gif"))
import javax.swing.*
public class baiduzhidao1 {
public static void main(String args[]){
ImageIcon img = new ImageIcon("1.jpg")/*负责显示图像的JLable对象j1*/
JLabel jl = new JLabel(img)
JPanel j = new JPanel() /*在JFrame上add上面板j*/
JFrame jf = new JFrame()
jf.setContentPane(j)
j.add(jl) /*在面板j上add上JLable对象j1*/
JPanel jjj = new JPanel() /*创建一个透明的面板放在JLable对象j1上负责放控件,此例中放置了一个按钮*/
jl.add(jjj)
jjj.setSize(200, 100) /*这里注意要设置大小*/
jjj.setOpaque(false) /*将负责放置控件的面板设置成透明,详细请查API*/
jjj.add(new JButton("确定")) /*添加按钮*/
jf.setVisible(true)
jf.setSize(500, 300)
}
}
容器从顶层开始顺序如下:
jf(JFrame对象实例) -->j (JPanel对象实例,无须设置透明) -->j1(JLable对象实例,负责显示图片)
-->jjj(JPanel对象实例,负责放置控件,需要设置成透明才不会让自身的底色覆盖了上层图片)