《java---高仿QQ登陆界面》---完全手写

来源:互联网 发布:http借口怎么写java 编辑:程序博客网 时间:2024/05/20 17:59
package com.fenghuo.view;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Cursor;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.GridBagLayout;import java.awt.GridLayout;import java.awt.Point;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.MouseMotionAdapter;import java.awt.event.MouseMotionListener;import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JRootPane;import javax.swing.JTextField;import javax.swing.SwingConstants;import javax.swing.UIManager;import javax.swing.event.AncestorEvent;import javax.swing.event.AncestorListener;import com.fenghuo.utils.ViewUthil;public class LoginView extends JFrame{private static final long serialVersionUID = 7410365204674471699L;private JLabel username_JLabel = null;private JLabel password_JLabel = null;private JLabel forgotPwd_JLabel = null;private JLabel register_JLabel = null;private JLabel login_JLabel = null; private JLabel close_JLabel = null;private JLabel head_JLabel = null;private JLabel advert_JLabel = null;private JPanel up_JPanel = null;private JPanel south_JPanel = null;private JPanel north_JPanel = null;private JPanel west_JPanel = null;private JTextField username_JTextField = null;private JTextField password_JTextField = null;private JButton login_JButton = null;private JButton cancel_JButton = null;private JCheckBox remeber_JCheckBox = null;private JCheckBox hide_JCheckBox = null;private JCheckBox auto_JCheckBox = null;Icon login_ImageIcon_normal = new ImageIcon(getClass().getResource("/com/fenghuo/resource/button_normal.png"));Icon login_ImageIcon_press = new ImageIcon(getClass().getResource("/com/fenghuo/resource/button_press.png"));Icon login_ImageIcon_normal_press = new ImageIcon(getClass().getResource("/com/fenghuo/resource/button_normal_press.png"));Icon close_ImageIcon_normal = new ImageIcon(getClass().getResource("/com/fenghuo/resource/btn_close_normal.png"));Icon close_ImageIcon_down = new ImageIcon(getClass().getResource("/com/fenghuo/resource/btn_close_down.png"));Icon close_ImageIcon_highlight = new ImageIcon(getClass().getResource("/com/fenghuo/resource/btn_close_highlight.png"));Icon head_ImageIcon_login = new ImageIcon(getClass().getResource("/com/fenghuo/resource/head_img.png"));Icon advert_ImageIcon_login = new ImageIcon(getClass().getResource("/com/fenghuo/resource/advert_img.png"));Icon mima_ImageIcon_press = new ImageIcon(getClass().getResource("/com/fenghuo/resource/mima_press.png"));Icon mima_ImageIcon_hover = new ImageIcon(getClass().getResource("/com/fenghuo/resource/mima_hover.png"));Icon zhuce_ImageIcon_press = new ImageIcon(getClass().getResource("/com/fenghuo/resource/zhuce_press.png"));Icon zhuce_ImageIcon_hover = new ImageIcon(getClass().getResource("/com/fenghuo/resource/zhuce_hover.png"));ImageIcon  background = new ImageIcon(getClass().getResource("/com/fenghuo/resource/background_blue.png"));JLabel backImage;JPanel backPanel;private int WIDTH;private int HEIGHT;// 鼠标的在空件上的位置public static int M_X;public static int M_Y;public LoginView(){try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());} catch (Exception e) {e.printStackTrace();}// 初始化界面范围this.WIDTH = background.getIconWidth();this.HEIGHT = background.getIconHeight();// 设置整体的背景图backImage = new JLabel(background);backImage.setBounds(0, 0, background.getIconWidth(),background.getIconHeight());backPanel = (JPanel) this.getContentPane();backPanel.setOpaque(false);this.getLayeredPane().setLayout(null);this.getLayeredPane().add(backImage, new Integer(Integer.MIN_VALUE));backPanel.setLayout(new BorderLayout());// 北部布局north_JPanel = new JPanel();north_JPanel.setLayout(null);north_JPanel.setOpaque(false);north_JPanel.setPreferredSize(new Dimension(background.getIconWidth(), (close_ImageIcon_normal.getIconHeight())+90));close_JLabel = new JLabel(close_ImageIcon_normal);close_JLabel.setBounds(this.WIDTH-close_ImageIcon_normal.getIconWidth(), 0, close_ImageIcon_normal.getIconWidth(), close_ImageIcon_normal.getIconHeight()); advert_JLabel = new JLabel(advert_ImageIcon_login);advert_JLabel.setBounds(1, close_ImageIcon_normal.getIconHeight()+5, advert_ImageIcon_login.getIconWidth(), advert_ImageIcon_login.getIconHeight());north_JPanel.add(close_JLabel);north_JPanel.add(advert_JLabel);// 西部布局west_JPanel = new JPanel(null);west_JPanel.setOpaque(false);west_JPanel.setPreferredSize(new Dimension(head_ImageIcon_login.getIconWidth()+25, head_ImageIcon_login.getIconHeight()));head_JLabel = new JLabel(head_ImageIcon_login);head_JLabel.setBounds(20, 10, head_ImageIcon_login.getIconWidth(), head_ImageIcon_login.getIconHeight());west_JPanel.add(head_JLabel);// 中间布局up_JPanel = new JPanel(new GridLayout(3,3));up_JPanel.setOpaque(false);//up_JPanel.setPreferredSize(new Dimension(250, 100));username_JLabel = new JLabel("账号",JLabel.CENTER);password_JLabel = new JLabel("密码",JLabel.CENTER);forgotPwd_JLabel = new JLabel(mima_ImageIcon_press, JLabel.CENTER);register_JLabel = new JLabel(zhuce_ImageIcon_press, JLabel.CENTER);username_JTextField = new JTextField();username_JTextField.setPreferredSize(new Dimension(150, 10));password_JTextField = new JPasswordField(10);remeber_JCheckBox = new JCheckBox("记住密码");hide_JCheckBox = new JCheckBox("隐身登陆");auto_JCheckBox = new JCheckBox("自动登陆");remeber_JCheckBox.setOpaque(false);hide_JCheckBox.setOpaque(false);auto_JCheckBox.setOpaque(false);up_JPanel.setBackground(new Color(202, 231, 244));up_JPanel.add(username_JLabel);up_JPanel.add(username_JTextField);up_JPanel.add(forgotPwd_JLabel);up_JPanel.add(password_JLabel);up_JPanel.add(password_JTextField);up_JPanel.add(register_JLabel);up_JPanel.add(remeber_JCheckBox);up_JPanel.add(auto_JCheckBox);up_JPanel.add(hide_JCheckBox);// 南部布局south_JPanel = new JPanel();south_JPanel.setOpaque(false);south_JPanel.setPreferredSize(new Dimension(WIDTH, 60));login_JLabel = new JLabel(login_ImageIcon_normal);south_JPanel.add(login_JLabel);// 添加面板到窗体this.add(north_JPanel, "North");this.add(up_JPanel, "Center");this.add(west_JPanel, "West");this.add(south_JPanel, "South");// 去掉窗体的样式this.setUndecorated(true);//this.getRootPane().setWindowDecorationStyle(JRootPane.QUESTION_DIALOG);//this.setExtendedState(this.ICONIFIED); //最小化 //this.setExtendedState(JFrame.MAXIMIZED_BOTH); //最大化 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setBounds(ViewUthil.getPositionX(400), ViewUthil.getPositionY(300), background.getIconWidth(), background.getIconHeight());this.setVisible(true);MyEvent(this);}private void MyEvent(final JFrame jFrame){// 登陆按钮鼠标事件login_JLabel.addMouseListener(new MouseAdapter() {@Overridepublic void mousePressed(MouseEvent e) {login_JLabel.setIcon(login_ImageIcon_normal_press);}@Overridepublic void mouseReleased(MouseEvent e) {login_JLabel.setIcon(login_ImageIcon_press);}@Overridepublic void mouseEntered(MouseEvent e) {login_JLabel.setIcon(login_ImageIcon_press);}@Overridepublic void mouseExited(MouseEvent e) {login_JLabel.setIcon(login_ImageIcon_normal);}});// 关闭按钮相关事件close_JLabel.addMouseListener(new MouseAdapter() {@Overridepublic void mouseReleased(MouseEvent e) {System.exit(0);}@Overridepublic void mousePressed(MouseEvent e) {close_JLabel.setIcon(close_ImageIcon_down);}@Overridepublic void mouseExited(MouseEvent e) {close_JLabel.setIcon(close_ImageIcon_normal);}@Overridepublic void mouseEntered(MouseEvent e) {close_JLabel.setIcon(close_ImageIcon_highlight);}});// 忘记密码标签forgotPwd_JLabel.addMouseListener(new MouseAdapter(){@Overridepublic void mousePressed(MouseEvent e) {forgotPwd_JLabel.setIcon(mima_ImageIcon_press);}@Overridepublic void mouseReleased(MouseEvent e) {forgotPwd_JLabel.setIcon(mima_ImageIcon_hover);}@Overridepublic void mouseEntered(MouseEvent e) {forgotPwd_JLabel.setIcon(mima_ImageIcon_hover);}@Overridepublic void mouseExited(MouseEvent e) {forgotPwd_JLabel.setIcon(mima_ImageIcon_press);}});// 注册register_JLabel.addMouseListener(new MouseAdapter(){@Overridepublic void mousePressed(MouseEvent e) {register_JLabel.setIcon(zhuce_ImageIcon_press);}@Overridepublic void mouseReleased(MouseEvent e) {register_JLabel.setIcon(zhuce_ImageIcon_hover);}@Overridepublic void mouseEntered(MouseEvent e) {register_JLabel.setIcon(zhuce_ImageIcon_hover);}@Overridepublic void mouseExited(MouseEvent e) {register_JLabel.setIcon(zhuce_ImageIcon_press);}});// 北部布局添加事件north_JPanel.addMouseMotionListener(new MouseMotionAdapter() {// 按下并拖动public void mouseDragged(MouseEvent e) {int X = LoginView.M_X;int Y = LoginView.M_Y;jFrame.setLocation(e.getXOnScreen()-X, e.getYOnScreen()-Y);//System.out.println(e.getX());}});north_JPanel.addMouseListener(new MouseAdapter(){@Overridepublic void mousePressed(MouseEvent e) {LoginView.M_X = e.getX();LoginView.M_Y = e.getY();}});}}

原创粉丝点击