package com.shou.loginfjame;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import java.util.List;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.xml.bind.util.ValidationEventCollector;
import com.shou.LoginUtil.LoginUser;
import com.shou.dao.LoginDao;
import com.shuo.util.ValidCode;
public class LoginFjame extends JFrame implements ActionListener {
private JFrame frame = new JFrame("登录");
private JPanel panel = new JPanel();
private JLabel tiel = new JLabel("龍丶逸小说登录系统"); // 创建标题
private JLabel userLabel = new JLabel("用户名:"); // 创建UserJLabel
private JTextArea userText=new JTextArea("请输入内容",7, 30); // 获取登录名
private JLabel passLabel = new JLabel("密 码:"); // 创建PassJLabel
private JPasswordField passText = new JPasswordField(20); // 密码框隐藏
private JLabel verCodeLa = new JLabel("验证码:"); // 验证码
private JTextField inputCode = new JTextField(); // 验证码框
private ValidCode vcode = new ValidCode(); // 验证码内容
JTextField jt_code;
private JButton loginButton = new JButton("登录"); // 创建登录按钮
private JButton registerButton = new JButton("注 册"); // 创建注册按钮
private JButton newPasswordButton = new JButton("忘记密码"); // 创建注册按钮
private JButton exitButton = new JButton("退出");
JTextField field = null;
public LoginFjame() {
System.out.println("=====================================");
System.out.println("== 龍丶逸小说系统 ==");
System.out.println("== V1.1.1.0 ==");
System.out.println("=====================================");
WinLogin();
}
public void WinLogin() {
panel.setLayout(null); // 设置布局为 null
// 创建标题名称
this.tiel.setFont(new Font("宋体", 1, 20));
this.tiel.setBounds(150, 30, 300, 25);
this.panel.add(this.tiel);
// 创建 UserJLabel
this.userLabel.setFont(new Font("宋体", 1, 13));
this.userLabel.setBounds(70, 80, 80, 25);
this.panel.add(userLabel);
// 创建文本域用于用户输入
this.userText.setBounds(145, 80, 165, 25);
this.panel.add(this.userText);
// 注册
this.registerButton.setFont(new Font("宋体", 1, 15));
this.registerButton.setContentAreaFilled(false);
this.registerButton.setBorderPainted(false);
/* registerButton.setBackground(Color.red); */
this.registerButton.setBounds(320, 80, 100, 25);
this.panel.add(this.registerButton);
// 变成小手
this.registerButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
// 创建PassJLabel
this.passLabel.setFont(new Font("宋体", 1, 13));
this.passLabel.setBounds(70, 110, 80, 25);
this.panel.add(this.passLabel);
// 密码输入框 隐藏
this.passText.setBounds(145, 110, 165, 25);
this.panel.add(this.passText);
// 忘记密码
this.newPasswordButton.setFont(new Font("宋体", 1, 15));
this.newPasswordButton.setContentAreaFilled(false);
this.newPasswordButton.setBorderPainted(false);
/* registerButton.setBackground(Color.red); */
this.newPasswordButton.setBounds(320, 110, 100, 25);
this.panel.add(this.newPasswordButton);
// 变成小手
this.newPasswordButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
// 验证码code
this.verCodeLa.setFont(new Font("宋体", 1, 13));
this.verCodeLa.setBounds(70, 140, 80, 25);
this.panel.add(this.verCodeLa);
// 验证码框
this.inputCode.setBounds(145, 140, 165, 25);
this.panel.add(this.inputCode);
// 验证码图片
this.vcode.setBounds(320, 140, 165, 25);
this.panel.add(this.vcode);
System.out.println(this.vcode);
// 创建登录按钮
this.loginButton.setFont(new Font("宋体", 1, 15));
this.loginButton.setBounds(95, 190, 80, 25);
this.panel.add(this.loginButton);
// 变成小手
this.loginButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
// 退出按钮
this.exitButton.setFont(new Font("宋体", 1, 15));
this.exitButton.setBounds(230, 190, 80, 25);
this.panel.add(this.exitButton);
// 变成小手
this.exitButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
// 设置窗体的位置及大小
this.frame.setSize(460, 355);
frame.setLocationRelativeTo(null); // 在屏幕中居中显示
frame.add(this.panel); // 添加面板
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置X号后关闭
//设置按钮
this.registerButton.addActionListener(this); //注册按钮
this.newPasswordButton.addActionListener(this); //忘记密码
this.loginButton.addActionListener(this); //登录
this.exitButton.addActionListener(this); //退出
// 往窗体里放其他控件
frame.setVisible(true); // 设置窗体可见
}
@Override
public void actionPerformed(ActionEvent e) {
JButton bt = (JButton) e.getSource();
// 获取按钮信息
String str = bt.getText();
// 获取用户名
String name = this.userText.getText().trim();
// 获取密码
String password = this.passText.getText().trim();
// 获取验证码
String code = this.inputCode.getText().trim();
// 获取jsp验证码
String vcode = this.vcode.getCode();
// 登录
if (str.equals("登录")) {
System.out.println("登录");
// 验证码转为大写
String Dcode = code.toUpperCase();
String Dvcode = vcode.toUpperCase();
// 验证码判断
if (Dcode.equals(Dvcode)) {
//获取页面的用户名
String username=this.userText.getText().trim();
// 根据用户名查看是否有该用户
try {
List loginUser=new LoginDao().queryAll(username);
String a=loginUser.toString();
System.out.println(a.toString());
if(!a.toString().equals("[]")){
//密码判断
String mysqlPasword=loginUser.get(0).l_password();
if(mysqlPasword.equals(password)){
//登录成功
JOptionPane pane = new JOptionPane("登录成功");
JDialog dialog = pane.createDialog(this, "警告");
dialog.show();
}else{
JOptionPane pane = new JOptionPane("密码错误错误,请重新输入");
JDialog dialog = pane.createDialog(this, "警告");
dialog.show();
}
}else{
JOptionPane pane = new JOptionPane("用户名错误,请重新输入");
JDialog dialog = pane.createDialog(this, "警告");
dialog.show();
}
/*System.out.println(loginUser.toString());
String sqlUername=loginUser.get(0).getL_username();*/
/*int sqlpassword=loginUser.get(0).getL_power();*/
/*System.out.println("loginF:"+sqlUername);*/
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
} else {
JOptionPane pane = new JOptionPane("验证码错误,请重新输入");
JDialog dialog = pane.createDialog(this, "警告");
System.out.println(dialog.getFont());
dialog.show();
}
} else
// 退出
if (str.equals("退出")) {
System.out.println("退出");
System.exit(0);
} else
// 注册
if (str.equals("注 册")) {
System.out.println("注 册");
}
// 注册
else if (str.equals("忘记密码")) {
System.out.println("忘记密码");
} else {
System.out.println("异常错误");
}
}
public boolean isValidCodeRight() {
System.out.println(this.jt_code.getText());
if (this.jt_code == null) {
return false;
}
if (this.vcode == null) {
return true;
}
if (this.vcode.getCode().equals(this.jt_code.getText())) {
return true;
}
return false;
}
public static void main(String[] args) {
new LoginFjame();
}
}