Swing开发透明窗体

相信读者在使用腾讯QQ时会发现,它的窗体是可以改变透明度的,虽然腾讯QQ采用.NET技术,
但是JAVA同样可以做出一样的效果。
今天在浏览API时偶然看到一个类AWTUtilities,就拿来用用,发现效果非常不错
 
下面具体看看Swing的透明窗体
 
直接写代码了:(我们用一个滑竿组件来控制透明度)
 
代码如下:
 
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JSlider;
import javax.swing.SwingUtilities;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class text
{      
    public static void main(String[] args)
    {   
        SwingUtilities.invokeLater(new Runnable()
        {   
            public void run()
            {   
                final JFrame frame = new JFrame("透明窗体");   //定义标准窗体
                JSlider jSlider = new JSlider(JSlider.HORIZONTAL, 0, 100, 100);//定义滑竿,
                //初始值为100%(完全不透明)
                jSlider.addChangeListener(new ChangeListener() {
           public void stateChanged(ChangeEvent ce) {
            float alpha = ((float) ((JSlider) ce.getSource()).getValue()) / 100;//读取滑竿百分比
            // 改变图像的透明度
            com.sun.awt.AWTUtilities.setWindowOpacity(frame, alpha);
            frame.repaint();
           }
          });
                frame.add(jSlider,BorderLayout.SOUTH);
                frame.setSize(400,300);
                frame.setVisible(true);   
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                com.sun.awt.AWTUtilities.setWindowOpacity(frame, 1f);//初始化透明度100%   
            }   
        });   
    }   
}  
 
 
运行结果如下:
初始化:        


 

 

 

 


移动滑竿改变透明度:


 
 
很炫吧!
 
如果读者能做出更炫酷的窗体,请提出来,互相交流,谢谢!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值