Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 370|回复: 0

[Swing学习]模仿Vista磨沙玻璃效果

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-31 23:55:44 | 显示全部楼层 |阅读模式
    源代码: ↓  /*
      * NewJFrame.java
      *
      * Created on 2007年10月27日, 下午5:23
      */ package javaapplication1;
    import java.awt.Robot;
    import java.awt.*;
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.Point;
    import java.awt.Rectangle;
    import java.awt.Robot;
    import java.awt.Toolkit;
    import java.awt.event.ComponentEvent;
    import java.awt.event.ComponentListener;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowFocusListener; import javax.swing.JButton;
    import javax.swing.JComponent;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.UIManager;
    import javax.swing.*;
    import java.awt.image.*;
    import java.awt.color.*;
    /**
      *
      * @author  mm
      */
    public class NewJFrame extends javax.swing.JFrame {
         boolean tf=true;
         /** Creates new form NewJFrame */
         public NewJFrame() {//??造方法
             this.setUndecorated(true);//去掉JFrame的标题栏
             Image ico=Toolkit.getDefaultToolkit().getImage("g:/h2.jpg");
             this.setIconImage(ico);
            
      
       
       
         
       

         
       
      
         try {
                UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");//UI设置
                //UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName());
                //windows?邮?
            }catch (Exception ex) {
          javax.swing.JOptionPane.showMessageDialog(this,"?l生UI加?d?e?`,您可能?o法看到程式?A想的UI效果,
                  ?e?`信息如下:
    "+ex.toString());
             }
            initComponents();
            this.setLocation(100,100);
        }
       
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        // <editor-fold defaultstate="collapsed" desc=" 生成的代码 ">                          
        private void initComponents() {
            jlb = new javax.swing.JLabel();         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
             setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
             addWindowFocusListener(new java.awt.event.WindowFocusListener() {
                 public void windowGainedFocus(java.awt.event.WindowEvent evt) {
                     formWindowGainedFocus(evt);
                 }
                 public void windowLostFocus(java.awt.event.WindowEvent evt) {
                     formWindowLostFocus(evt);
                 }
             });
             addComponentListener(new java.awt.event.ComponentAdapter() {
                 public void componentMoved(java.awt.event.ComponentEvent evt) {
                     formComponentMoved(evt);
                 }
                 public void componentResized(java.awt.event.ComponentEvent evt) {
                     formComponentResized(evt);
                 }
             });         jlb.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(128, 128, 128)));         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
             getContentPane().setLayout(layout);
             layout.setHorizontalGroup(
                 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                 .addComponent(jlb, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 289, Short.MAX_VALUE)
             );
             layout.setVerticalGroup(
                 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                 .addComponent(jlb, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 762, Short.MAX_VALUE)
             );
             pack();
         }// </editor-fold>                             private void formWindowLostFocus(java.awt.event.WindowEvent evt) {                                    
    // TODO 将在此处添加您的处理代码://失去焦?c
             
         }                                         private void formWindowGainedFocus(java.awt.event.WindowEvent evt) {                                       
    // TODO 将在此处添加您的处理代码://得到焦?c
             this.selectBgimg();
             
         }                                           private void formComponentResized(java.awt.event.ComponentEvent evt) {                                      
    // TODO 将在此处添加您的处理代码://?}窗口改??大小
             
             this.selectBgimg();
         }                                          private void formComponentMoved(java.awt.event.ComponentEvent evt) {                                    
    // TODO 将在此处添加您的处理代码://?}窗口移??
             if(this.tf=false){
                 this.tf=true;
             this.selectBgimg();
             }else{
                 this.tf=false;
             }
         }                                             
         private void selectBgimg(){//截屏代码
               try {
             Point p=this.getLocation();//移?臃绞?,用p
             this.setLocation(-2000,-2000);//移?臃绞?
                   //this.setVisible(false);//?[藏方式,用this
            Robot rbt = new Robot();
        Toolkit tk = Toolkit.getDefaultToolkit();
        Dimension dim = tk.getScreenSize();
        BufferedImage background =
          rbt.createScreenCapture(new Rectangle((int)p.getX()+1,(int)p.getY()+1, this.getWidth()-2,this.getHeight()-2));
        background =
          rbt.createScreenCapture(new Rectangle((int)p.getX()+1,(int)p.getY()+1, this.getWidth()-2,this.getHeight()-2));
        background =
           rbt.createScreenCapture(new Rectangle((int)p.getX()+1,(int)p.getY()+1, this.getWidth()-2,this.getHeight()-2));
        background =
           rbt.createScreenCapture(new Rectangle((int)p.getX()+1,(int)p.getY()+1, this.getWidth()-2,this.getHeight()-2));
       
        float[] data={
      0.0625f,0.125f,0.0625f,
      0.125f,0.125f,0.125f,
      0.0625f,0.125f,0.0625f,              
             //0.170f,0.06f,0.170f,
             //0.06f,0.06f,0.06f,
             //0.170f,0.06f,0.170f,
    };
    Kernel kernel= new Kernel(3,3,data); ConvolveOp co= new ConvolveOp(kernel,ConvolveOp.EDGE_NO_OP,null);
    BufferedImage background2=null;
    background2=co.filter(background,background2);
       
        ImageIcon bg=new ImageIcon(background2);
        jlb.setIcon(bg);   
       
        //this.setVisible(true);//?[藏方式
             this.setLocation(p);//移?臃绞?
          } catch (Exception ex) {
           javax.swing.JOptionPane.showMessageDialog(this,"透明效果?l生?e?`,程序?o法???樱??e?`信息如下:
    "+ex.toString());
        }
         }
         
         
             
         /**
          * @param args the command line arguments
          */
         public static void main(String args[]) {
             java.awt.EventQueue.invokeLater(new Runnable() {
                 public void run() {
                     new NewJFrame().setVisible(true);
                 }
             });
         }
         
         // 变量声明 - 不进行修改                     
         private javax.swing.JLabel jlb;
         // 变量声明结束                  
         
    }

      效果图:

      
      
      
      




      
      
       
       

         
       

         
       
      
    复制代码

    源码下载:http://file.javaxxz.com/2014/10/31/235544640.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-7-12 02:57 , Processed in 0.367940 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表