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);

图片显示的出,但是背景是默认背景色,还是覆盖了下面的控件。。。

所以要怎么写才能搞成完全透明的。。。。。。
展开
 我来答
码海重生

2013-03-23 · 200%精心编写的技术文档,助你进阶系统架构
码海重生
采纳数:45 获赞数:113

向TA提问 私信TA
展开全部
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对象实例,负责放置控件,需要设置成透明才不会让自身的底色覆盖了上层图片)
天下万物竞自由
2013-03-23 · TA获得超过265个赞
知道答主
回答量:469
采纳率:31%
帮助的人:89.8万
展开全部
看说明书吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式