java中怎样让panel完全透明,只显示上面的图片?
我已经写好一个界面,用的是可以自适应大小的布局。现在想要按下一个键在界面中间显示一张小图片。如果把图片直接放入底下的布局那会自适应窗口大小,底下的控件就会看不见。。。现在...
我已经写好一个界面,用的是可以自适应大小的布局。现在想要按下一个键在界面中间显示一张小图片。如果把图片直接放入底下的布局那会自适应窗口大小,底下的控件就会看不见。。。
现在我是这样写的:
ImageIcon img = new ImageIcon("1.gif");
JPanel jp.setLayout(null);
//jp.setOpaque(false); //试过了,那只是和背景色一样,不是完全透明看不见。。
JLabel jl = new JLabel(img);
jl.setSize(100, 120);
jp.add(jl);
add(jp,BorderLayout.CENTER);
运行出来连上面的图片都显示不出来= = 但是却完全覆盖了下面的控件。。
如果:
ImageIcon img = new ImageIcon("1.gif");
jl = new JLabel(img);
add(jl,BorderLayout.CENTER);
图片显示的出,但是背景是默认背景色,还是覆盖了下面的控件。。。
所以要怎么写才能搞成完全透明的。。。。。。 展开
现在我是这样写的:
ImageIcon img = new ImageIcon("1.gif");
JPanel jp.setLayout(null);
//jp.setOpaque(false); //试过了,那只是和背景色一样,不是完全透明看不见。。
JLabel jl = new JLabel(img);
jl.setSize(100, 120);
jp.add(jl);
add(jp,BorderLayout.CENTER);
运行出来连上面的图片都显示不出来= = 但是却完全覆盖了下面的控件。。
如果:
ImageIcon img = new ImageIcon("1.gif");
jl = new JLabel(img);
add(jl,BorderLayout.CENTER);
图片显示的出,但是背景是默认背景色,还是覆盖了下面的控件。。。
所以要怎么写才能搞成完全透明的。。。。。。 展开
2个回答
展开全部
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对象实例,负责放置控件,需要设置成透明才不会让自身的底色覆盖了上层图片)
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对象实例,负责放置控件,需要设置成透明才不会让自身的底色覆盖了上层图片)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |