JScrollPane和JButton组件设置透明注意事项

来源:互联网 发布:办公室网络综合布线 编辑:程序博客网 时间:2024/06/06 01:21

前段时间,做swing界面开发中,需要将两个组件(JScrollPane和JButton)背景设为透明,以为就是简单的setOpaque(false)就行了,但运行时,发现没实现透明的效果。后来搜了一下发现不同组件设置透明是不一样的,然后就解决了。因为问题很小,也没怎么在意,今天看代码的时候,觉得还是记在博客里好些,以免以后忘了,好记忆不如烂笔头嘛~

1.设置JScrollPane为透明除了JScrollPane.setOpaque(false); 外还要加一句
JScrollPane.getViewport().setOpaque(false);
网上有一个帖子对其的解释,在此贴出来,原文地址:http://roc08.iteye.com/blog/1146633
:“JViewport 为数据源提供一个窗口或“视口”,例如,一个文本文件,该数据源为由 JViewport 视图显示的“scrollable 客户端”(即数据模型)。JScrollPane 基本上由 JScrollBar、一个 JViewport 以及它们之间的连线组成,故其数据应该放在JViewport中,因此设置背景透明时,除了要设置pane的背景,还要将JViewport背景也设置为透明才可。”
2.设置jButton为透明,要加上button.setContentAreaFilled(false); 这句,即不绘制内容区域

3.JList 设置透明

JList jl = new JList();
jl.setOpaque(false);
(JLabel)jl.getCellRenderer.setOpaque(false);