首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

求教Java 控件的透明设立

2012-08-07 
求教Java 控件的透明设置比如我我定义了一个Frame:TestFrame和一个Panel:TestPanel然后我把这个Panel的背

求教Java 控件的透明设置
比如我我定义了一个Frame:TestFrame
和一个Panel:TestPanel
然后我把这个Panel的背景设置成一张图片

接下来我向TestPanel添加一些其他的控件,比如:List,JSlider。。。。
这样这些控件就把TestPanel给覆盖了

有什么方法可以避免这种覆盖呢?
我试了setOpaque(false); 这个方法 ,但是不起作用

小弟刚接触java,还请那位大牛帮忙看下!先谢谢!

[解决办法]
不同控件有不同的设置透明的方式.以下给出几个常用的例子.
JLabel 直接设置 label.setOpaque(false); 即可

JButton: 需要如下处理
button.setOpaque(false);
button.setContentAreaFilled(false); 
但是这样透明后没有了点击效果.需要自行处理一下几个地方
pressedIcon
selectedIcon
disabledSelectedIcon
disabledIcon
自行处理按钮效果.

JList: 做如下处理
jList1=new JList();

jList1.setOpaque(false); 
jList1.setCellRenderer(new DefaultListCellRenderer() {
@Override
public Component getListCellRendererComponent(JList jlist, Object o, int i, boolean bln, boolean bln1) {
Component listCellRendererComponent = super.getListCellRendererComponent(jlist, o, i, bln, bln1);
JLabel label=(JLabel) listCellRendererComponent;
label.setOpaque(false);
return label;
}
});


[解决办法]
DefaultListModel mod=new DefaultListModel();
JList list=new JList();
list.setModel(mod);

mod.addElement("String1");
mod.addElement("String2");
mod.addElement("String3");

Jlist所有数据操作都是通过Model来处理的. list只用于显示数据.

热点排行