package zzDemo;

import java.awt.Button;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JOptionPane;

public class QQlogin {
    private static Frame f;
    private static TextField zh;
    private static TextField mm;
    public static void main(String[] args) {
        f = new Frame();
        f.setSize(300, 200);// 设置窗体尺寸
        int x=setLocation.getX(f);
        int y=setLocation.getY(f);
        f.setLocation(x, y);//窗体居中
        f.setLayout(null);// 清空窗体样式
        f.setResizable(false);// 禁止更改窗体字体大小(显示比例)
        f.setIconImage(Toolkit.getDefaultToolkit().getImage("img/qq_3d.png"));
        f.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                f.dispose();// 监听关闭
            }

        });
        // 账号标签:
        Label name = new Label("账号");
        name.setSize(50, 30);
        name.setLocation(30, 50);
        f.add(name);

        // 密码标签
        Label pwd = new Label("密码:");
        pwd.setSize(50, 30);
        pwd.setLocation(30, 80);
        f.add(pwd);

        // 账号文本框
         zh = new TextField();
        zh.setSize(150, 20);
        zh.setLocation(80, 55);
        // 添加键盘输入的监听事件,设置文本框只能输入数字
        zh.addKeyListener(new KeyListener() {
            @SuppressWarnings("static-access")
            @Override
            public void keyTyped(KeyEvent e) {//点击时
                int key=e.getKeyChar();
                if(key>=e.VK_0 && key<=e.VK_9){

                }else if(key==e.VK_ENTER){//如果按回车键
                    check();
                }else{
                    e.consume();//将输入内容从内存中消除(输入不进去)
                }
            }

            @Override
            public void keyPressed(KeyEvent e) {
                // TODO Auto-generated method stub

            }

            @Override
            public void keyReleased(KeyEvent e) {
                // TODO Auto-generated method stub

            }
        });
        f.add(zh);

        // 密码框
        mm = new TextField();
        mm.setSize(150, 20);
        mm.setLocation(80, 85);
        mm.setEchoChar('*');// 设置密码不可见
        mm.addKeyListener(new KeyListener() {

            @SuppressWarnings("static-access")
            @Override
            public void keyTyped(KeyEvent e) {
                int key=e.getKeyChar();
                if(key==e.VK_ENTER){
                    check();
                }

            }

            @Override
            public void keyReleased(KeyEvent e) {
                // TODO Auto-generated method stub

            }

            @Override
            public void keyPressed(KeyEvent e) {
                // TODO Auto-generated method stub

            }
        });
        f.add(mm);

        // 登录按钮
        Button login = new Button();
        login.setLabel("登录");
        login.setSize(100, 30);
        login.setLocation(30, 130);
        // 登录按钮点击事件
        login.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent arg0) {
                check();
                }
        });
        f.add(login);

        // 注册按钮
        Button reg = new Button("注册");
        reg.setSize(100, 30);
        reg.setLocation(140, 130);
        reg.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                String mess=JOptionPane.showInputDialog("请输入:");
                    System.out.println(mess);   
            }
        });
        f.add(reg);
        f.setVisible(true);
        f.setResizable(false);//不允许用户调整窗口大小
    }

    public static void check(){
        //获取账号密码内容
        String t1=zh.getText();//获取账号信息
        String t2=mm.getText();//获取密码信息
        if(t1.equals("112233")&&t2.equals("1111")){
            //普通消息提示框
//          JOptionPane.showMessageDialog(f, "登录成功!即将跳转至QQ主页……");
            //带选择的消息提示框
            int i=JOptionPane.showConfirmDialog(f, "是否打开主页?");
            if(i==0){//0代表yes
                f.dispose();//关闭登录界面
                new Main();
            }else{

            }
        }else if(t1.equals("112233") && !t2.equals("1111")){
            JOptionPane.showInternalMessageDialog(f,"密码错误" );
            mm.setText("");//将密码清空
            mm.requestFocus();//获得当前焦点,光标停在此处
        }else if(t1.equals("")||t1==null){
            JOptionPane.showMessageDialog(f,"账号不能为空" );
            zh.requestFocus();
        }else if(t2.equals("")){
            JOptionPane.showMessageDialog(f,"密码不能为空" );
            mm.requestFocus();
        }else{
            JOptionPane.showMessageDialog(f, "账号或密码错误");
            zh.setText("");
            mm.setText("");//将账号密码全部清空重写
            zh.requestFocus();
        }
    }

}
package zzDemo;

import java.awt.Frame;
import java.awt.Toolkit;
/**
 * 窗体居中方法:
 * @author Administrator
 *
 */
public class setLocation {
    public static int getX(Frame f){
        //获得当前屏幕的宽度
        int width=(int) Toolkit.getDefaultToolkit().getScreenSize().getWidth();
        int x=(int) f.getSize().getWidth();//获取当前窗口的宽度
        return (width-x)/2;//当前窗体宽度居中
    }
    public static int getY(Frame f){
        //获得当前屏幕的高度
        int height=(int) Toolkit.getDefaultToolkit().getScreenSize().getHeight();
        int y=f.getSize().height;
        return (height-y)/2;
    }

}
package zzDemo;

import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Main {
    public Main(){
        Frame f=new Frame();
        f.setSize(500, 800);
        int x=setLocation.getX(f);
        int y=setLocation.getY(f);
        f.setLocation(x, y);

        f.setVisible(true);
        f.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                f.dispose();
            }
        });
    }


}