java中怎样让panel完全透明,只显示上面的图片?

Python08

java中怎样让panel完全透明,只显示上面的图片?,第1张

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对象实例,负责放置控件,需要设置成透明才不会让自身的底色覆盖了上层图片)

要在JFrame上添加背景图片,常见做法是加在layeredPane上面,并将contentPane设置成透明的即可。// 将图片添加到layeredPaneImageIcon img = new ImageIcon("steve.jpg")JLabel imgLabel = new JLabel(img)frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE))imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight())// 将contentPane设置成透明的