用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

QQdenglu

2017-05-07 作者: 小鱼宝宝举报

[java]代码库

/**
 * 登陆过程中的动画界面
 */
 
package cn.qq.view.login;
 
import java.awt.AWTException;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.RoundRectangle2D;
import java.io.IOException;
 
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
 
import com.sun.awt.AWTUtilities;
 
import cn.qq.listener.FrameMoveListener;
import cn.qq.listener.WindowCloseListener;
import cn.qq.listener.WindowMinListener;
import cn.qq.manager.ServiceInterface;
import cn.qq.service.LoginRequest;
import cn.qq.thread.LoginTrayIconThread;
import cn.qq.view.util.JButtonUtil;
 
/**
 *
 * @author _zc
 *
 */
public class LoadingFrame extends JFrame implements Runnable {
 
    private JPanel mainPane = null; // 主面板
    private JPanel downPane = null; // 底部取消按钮面板
    private JLabel lblCancel = null; // 取消文字标签
    private JButton btnCancelLogin = null;// 取消登陆按钮
    private JButton btnMin = null; // 最小化
    private JButton btnClose = null;// 关闭
    private JButton btnSet = null;// 设置
    private JLabel lblAccountInfo = null;// 提示账号
 
    public SystemTray sysTray = null; // 系统托盘
    public TrayIcon trayIcon = null; // 托盘图标
 
    public LoginFrame loginFrame = null; // 登录界面
    boolean isRun = true; // 控制线程
 
    public LoadingFrame(LoginFrame loginFrame) {
        this.loginFrame = loginFrame;
    }
 
    public void launchFrame() {
 
        this.setSize(380, 292);
        this.setIconImage(new ImageIcon("image/Login/qqTitle.png").getImage());
        this.setUndecorated(true);
        AWTUtilities.setWindowOpacity(this, 0.98f);
        this.initComponent();
        this.addComponent();
        this.initSystemTray();
        this.setContentPane(mainPane);
 
 
         /** 设置圆角 */ 
        AWTUtilities.setWindowShape(this, new RoundRectangle2D.Double( 
                0.0D, 0.0D, this.getWidth(), this.getHeight(), 20.0D,  20.0D));
         
         
        // 添加窗口移动监听
        FrameMoveListener listener = new FrameMoveListener(this);
        this.addMouseListener(listener);
        this.addMouseMotionListener(listener);
 
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
         
        try {
            Thread.sleep(4000);
        } catch (InterruptedException e1) {
            e1.printStackTrace();
        }
         
        //多账号登录登录请求
        if(AddLoginAccountFrame.account!=null && !AddLoginAccountFrame.account.equals("")){
            LoginRequest service = null;
            try {
                service = new LoginRequest(AddLoginAccountFrame.account, AddLoginAccountFrame.password, this);
            } catch (IOException e) {
                this.showTip();
//              e.printStackTrace();
            }
            service.sendServiceRequest();
            service.updateInfo();
        }
         
        //向服务器发送登陆请求
        ServiceInterface request = null;
        try {
            request = new LoginRequest(this);
        } catch (IOException e) {
            this.showTip();
//          e.printStackTrace();
        }
        if(request != null){
            request.sendServiceRequest();
            request.updateInfo();
        }
    }
     
    /**
     * 显示提示消息
     */
    public void showTip() {
        this.setVisible(false);
        this.dispose();
        this.sysTray.remove(this.trayIcon);
        this.loginFrame.setVisible(true);
        try {
            this.loginFrame.sysTray.add(loginFrame.trayIcon);
        } catch (AWTException e1) {
            // TODO Auto-generated catch block
//          e1.printStackTrace();
        }
        this.loginFrame.setLocation(this.getX(),this.getY());
        this.loginFrame.mainPane.remove(this.loginFrame.downPane);
        this.loginFrame.mainPane.add(this.loginFrame.errorTipPane);
        this.loginFrame.errorTipPane.setBounds(0, 241, 380, 51);
        this.loginFrame.errorTipPane.lblTip.setText("网络连接故障,服务器正在维护。");
        this.loginFrame.errorTipPane.lblTip.setBounds(100, 15, 300, 20);
        this.loginFrame.mainPane.updateUI();
    }
 
     
 
    /**
     * 设置系统托盘
     */
    private void initSystemTray() {
        sysTray = SystemTray.getSystemTray();
        trayIcon = new TrayIcon(new ImageIcon("image/Loading/login_tray/6.png").getImage(),"QQ登录");
        LoginTrayIconThread trayIconThread = new LoginTrayIconThread(trayIcon);
        new Thread(trayIconThread).start();
        try {
            if (SystemTray.isSupported() && trayIcon != null) {
                sysTray.add(trayIcon);
            }
        } catch (AWTException e1) {
            e1.printStackTrace();
        }
 
    }
 
    /**
     * 初始化组件
     */
    private void initComponent() {
        // 主面板
        mainPane = new MainPane();
//      mainPane.setBorder(new LineBorder(Color.GRAY));
        downPane = new DownPane();
 
        lblAccountInfo = new JLabel(loginFrame.getJtfAccount().getText() + "正在登录...");
        lblAccountInfo.setFont(new Font("微软雅黑", Font.PLAIN, 12));
        lblAccountInfo.setForeground(Color.black);
         
        btnClose = JButtonUtil.getBtnClose();
        btnMin = JButtonUtil.getBtnMin();
        btnSet = JButtonUtil.getBtnSet();
        btnSet.setEnabled(false);
 
        // 给取消按钮添加活动事件
        btnCancelLogin.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                setVisible(false);
                isRun = false;
                dispose();
                sysTray.remove(trayIcon);
                loginFrame.setVisible(true);
                try {
                    loginFrame.sysTray.add(loginFrame.trayIcon);
                } catch (AWTException e1) {
                    e1.printStackTrace();
                }
                loginFrame.setLocation(LoadingFrame.this.getX(),
                        LoadingFrame.this.getY());
 
            }
        });
 
        // 给最小化按钮添加活动事件
        btnMin.addActionListener(new WindowMinListener(this));
        //给关闭按钮添加监听
        btnClose.setActionCommand("exit");
        btnClose.addActionListener(new WindowCloseListener(this));
 
    }
 
    /**
     * 添加组件
     */
    private void addComponent() {
 
        mainPane.setLayout(null);
 
        mainPane.add(btnClose);
        btnClose.setBounds(342, -2, 39, 20);
        mainPane.add(btnMin);
        btnMin.setBounds(315, -2, 28, 20);
        mainPane.add(btnSet);
        btnSet.setBounds(288, -2, 28, 20);
         
        mainPane.add(lblAccountInfo);
        lblAccountInfo.setBounds(140, 115, 180, 60);
 
        mainPane.add(downPane);
        downPane.setBounds(0, 241, 380, 51);
 
    }
 
    /**
     * 底部按钮面板
     */
    class DownPane extends JPanel {
 
        public DownPane() {
            btnCancelLogin = JButtonUtil.getIconButton(
                    "image/Login/button_red_normal.png",
                    "image/Login/button_red_press.png",
                    "image/Login/button_red_hover.png");
 
            lblCancel = new JLabel("取        消");
            lblCancel.setFont(new Font("微软雅黑", Font.PLAIN, 12));
            lblCancel.setForeground(Color.BLACK);
 
            this.setLayout(null);
 
            this.add(lblCancel);
            lblCancel.setBounds(163, 16, 100, 25);
            this.add(btnCancelLogin);
            btnCancelLogin.setBounds(72, 5, 237, 48);
        }
 
        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.drawImage(new ImageIcon("image/Login/loginbutton_background.jpg")
                    .getImage(), 0, 0, 378, 50, this);
            g.drawImage(new ImageIcon("image/Loading/loading.gif").getImage(),
                    0, 1, 380, 2, this);
        }
    }
 
    /**
     * 主面板
     *
     * @author _zc
     */
    class MainPane extends JPanel implements Runnable {
        int time = 1;
 
        public MainPane() {
            new Thread(this).start();
        }
 
        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.drawImage(new ImageIcon("image/Login/background/afternoon.jpg")
                    .getImage(), 0, 0, 380, 292, this);
             
//          if (time <= 10) {
//              g.drawImage(
//                      new ImageIcon("image/Loading/white/1.png").getImage(),
//                      168, 165, 28, 28, this);
//          } else if (time <= 20) {
//              g.drawImage(
//                      new ImageIcon("image/Loading/white/2.png").getImage(),
//                      168, 165, 28, 28, this);
//          } else if (time <= 30) {
//              g.drawImage(
//                      new ImageIcon("image/Loading/white/3.png").getImage(),
//                      168, 165, 28, 28, this);
//          } else if (time <= 40) {
//              g.drawImage(
//                      new ImageIcon("image/Loading/white/4.png").getImage(),
//                      168, 165, 28, 28, this);
//          } else if (time <= 50) {
//              g.drawImage(
//                      new ImageIcon("image/Loading/white/5.png").getImage(),
//                      168, 165, 28, 28, this);
//          } else if (time <= 60) {
//              g.drawImage(
//                      new ImageIcon("image/Loading/white/6.png").getImage(),
//                      168, 165, 28, 28, this);
//          } else if (time <= 70) {
//              g.drawImage(
//                      new ImageIcon("image/Loading/white/7.png").getImage(),
//                      168, 165, 28, 28, this);
//          } else if (time <= 80) {
//              g.drawImage(
//                      new ImageIcon("image/Loading/white/8.png").getImage(),
//                      168, 165, 28, 28, this);
//          }
//          time++;
//          if (time >= 80) {
//              time = 1;
//          }
             
            if (time <= 10) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000001.png").getImage(),
                        60, 80, 286, 50, this);
            } else if (time <= 20) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000002.png").getImage(),
                        60, 80, 286, 50, this);
            } else if (time <= 30) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000003.png").getImage(),
                        60, 80, 286, 50, this);
            } else if (time <= 40) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000004.png").getImage(),
                        60, 80, 286, 50, this);
            } else if (time <= 50) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000005.png").getImage(),
                        60, 80, 286, 50, this);
            } else if (time <= 60) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000006.png").getImage(),
                        60, 80, 286, 50, this);
            } else if (time <= 70) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000007.png").getImage(),
                        60, 80, 286, 50, this);
            } else if (time <= 80) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000008.png").getImage(),
                        60, 80, 286, 50, this);
            }else if (time <= 90) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000009.png").getImage(),
                        60, 80, 286, 50, this);
            }else if (time <= 100) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000010.png").getImage(),
                        60, 80, 286, 50, this);
            }else if (time <= 110) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000011.png").getImage(),
                        60, 80, 286, 50, this);
            }else if (time <= 120) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000010.png").getImage(),
                        60, 80, 286, 50, this);
            }else if (time <= 130) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000009.png").getImage(),
                        60, 80, 286, 50, this);
            }else if (time <= 140) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000008.png").getImage(),
                        60, 80, 286, 50, this);
            }else if (time <= 150) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000007.png").getImage(),
                        60, 80, 286, 50, this);
            }else if (time <= 160) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000006.png").getImage(),
                        60, 80, 286, 50, this);
            }else if (time <= 170) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000005.png").getImage(),
                        60, 80, 286, 50, this);
            }else if (time <= 180) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000004.png").getImage(),
                        60, 80, 286, 50, this);
            }else if (time <= 190) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000003.png").getImage(),
                        60, 80, 286, 50, this);
            }else if (time <= 210) {
                g.drawImage(
                        new ImageIcon("image/Loading/snow_loading/frame-000002.png").getImage(),
                        60, 80, 286, 50, this);
            }
         
            time++;
            if (time >= 210) {
                time = 1;
            }
        }
 
        @Override
        public void run() {
            while (true) {
                this.repaint();
                try {
                    Thread.sleep(10);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
 
    @Override
    public void run() {
        this.launchFrame();
    }
     
}

[源代码打包下载]




网友评论    (发表评论)

共4 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...