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() {
@Override
public void mousePressed(MouseEvent e) {
login_JLabel.setIcon(login_ImageIcon_normal_press);
}
@Override
public void mouseReleased(MouseEvent e) {
login_JLabel.setIcon(login_ImageIcon_press);
}
@Override
public void mouseEntered(MouseEvent e) {
login_JLabel.setIcon(login_ImageIcon_press);
}
@Override
public void mouseExited(MouseEvent e) {
login_JLabel.setIcon(login_ImageIcon_normal);
}
});
// 关闭按钮相关事件
close_JLabel.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
System.exit(0);
}
@Override
public void mousePressed(MouseEvent e) {
close_JLabel.setIcon(close_ImageIcon_down);
}
@Override
public void mouseExited(MouseEvent e) {
close_JLabel.setIcon(close_ImageIcon_normal);
}
@Override
public void mouseEntered(MouseEvent e) {
close_JLabel.setIcon(close_ImageIcon_highlight);
}
});
// 忘记密码标签
forgotPwd_JLabel.addMouseListener(new MouseAdapter(){
@Override
public void mousePressed(MouseEvent e) {
forgotPwd_JLabel.setIcon(mima_ImageIcon_press);
}
@Override
public void mouseReleased(MouseEvent e) {
forgotPwd_JLabel.setIcon(mima_ImageIcon_hover);
}
@Override
public void mouseEntered(MouseEvent e) {
forgotPwd_JLabel.setIcon(mima_ImageIcon_hover);
}
@Override
public void mouseExited(MouseEvent e) {
forgotPwd_JLabel.setIcon(mima_ImageIcon_press);
}});
// 注册
register_JLabel.addMouseListener(new MouseAdapter(){
@Override
public void mousePressed(MouseEvent e) {
register_JLabel.setIcon(zhuce_ImageIcon_press);
}
@Override
public void mouseReleased(MouseEvent e) {
register_JLabel.setIcon(zhuce_ImageIcon_hover);
}
@Override
public void mouseEntered(MouseEvent e) {
register_JLabel.setIcon(zhuce_ImageIcon_hover);
}
@Override
public 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(){
@Override
public void mousePressed(MouseEvent e) {
LoginView.M_X = e.getX();
LoginView.M_Y = e.getY();
}
});
}
}
《java---高仿QQ登陆界面》---完全手写
最新推荐文章于 2020-04-26 11:56:46 发布