packagemytest;public classLogin {boolean success = false;
String id;
String password;public voidsetID(String string) {this.id =string;
}public voidsetPassword(String password) {this.password =password;
}publicString getID() {returnid;
}publicString getPassword() {returnpassword;
}public void setSuccess(booleansuccess) {this.success =success;
}public booleangetSuccess() {returnsuccess;
}
}packagemytest;public classChange {boolean success = false;
String id;
String password;public voidsetID(String string) {this.id =string;
}public voidsetPassword(String password) {this.password =password;
}publicString getID() {returnid;
}publicString getPassword() {returnpassword;
}public void setSuccess(booleansuccess) {this.success =success;
}public booleangetSuccess() {returnsuccess;
}
}packagemytest;public classRegister {
String id;
String password;
String email;
String sex;
String name;
String birth;public voidsetID(String string) {this.id =string;
}public voidsetPassword(String password) {this.password =password;
}public voidsetSex(String sex) {this.sex =sex;
}public voidsetEmail(String email) {this.email =email;
}public voidsetBirth(String birth) {this.birth =birth;
}public voidsetName(String name) {this.name =name;
}publicString getName() {returnname;
}publicString getID() {returnid;
}publicString getPassword() {returnpassword;
}publicString getSex() {returnsex;
}publicString getEmail() {returnemail;
}publicString getBirth() {returnbirth;
}
}packagemytest;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JFrame;import mytest.*;importmytest.Login;importmytest.Register;public class RegAndLog extendsJFrame {
RLview rl;
RegAndLog(){
setBounds(100,100,800,260);
rl= newRLview();
add(rl);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
}public static voidmain(String args[]) {
RegAndLog window= newRegAndLog();
window.setTitle("登录");
}
}packagemytest;import java.awt.*;import javax.swing.*;importmytest.Register;import java.awt.event.*;public class RegisterView extends JPanel implementsActionListener, ItemListener{
Register register;
JTextField id,name,email,password1,password2;
JComboBox sex,year,month,day;int[] DAY={31,28,31,30,31,30,31,31,30,31,30,31};
JButton reg,esc;
RegisterView(){
register= newRegister();
id= new JTextField(15);
name=new JTextField(15);
email=new JTextField(15);
password1= new JTextField(15);
password2=new JTextField(15);
reg= new JButton("注册");
esc= new JButton("退出");
add(new JLabel("账号:"));
add(id);
add(new JLabel("姓名:"));
add(name);
add(new JLabel("性别"));
sex= newJComboBox();
sex.addItem("male");
sex.addItem("female");
add(sex);
year=newJComboBox();
month=newJComboBox();
day=newJComboBox();
add(new JLabel("出生日期"));for(int i=1910;i<2021;i++) {
year.addItem(i);
}
add(year);
add(new JLabel("年"));for(int i=1;i<13;i++) {
month.addItem(i);
month.addItemListener(this);
}
add(month);
add(new JLabel("月"));
add(day);
add(new JLabel("日"));//add(new JLabel("Email"));
add(new JLabel(“email:"));
add(email);
add(new JLabel("密码:"));
add(password1);
add(new JLabel("确认密码"));
add(password2);
add(reg);
add(esc);
reg.addActionListener(this);
esc.addActionListener(this);
}
@Overridepublic voidactionPerformed(ActionEvent e) {//TODO Auto-generated method stub
if(e.getSource()==esc) {
System.exit(0);
}if(e.getSource()==reg) {
register.setID(id.getText());
register.setName(name.getText());
register.setEmail(email.getText());
register.setSex(sex.getSelectedItem().toString());
String born= year.getSelectedItem().toString()+"-"+month.getSelectedItem().toString()+"-"+day.getSelectedItem().toString();
register.setBirth(born);if(password1.getText().equals(password2.getText())) {
register.setPassword(password1.getText());
}else{
JOptionPane.showMessageDialog(null,"密码前后不一致","警告",JOptionPane.WARNING_MESSAGE);
}
HandleReg hr= newHandleReg();
hr.writeReg(register);
}
}public voiditemStateChanged(ItemEvent e) {if (e.getSource() ==month) {
String year= this.year.getSelectedItem().toString();//获取选中//已知年份
String mon = this.month.getSelectedItem().toString();//获取月份
int y =Integer.valueOf(year);int m = Integer.valueOf(mon);//转换为int
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) {
DAY[1] = 29;
}else{
DAY[1] = 28;//判断闰年
}
day.removeAllItems();//清空选项列表、
for (int i = 0; i < DAY[m - 1]; i++) {
day.addItem(i+ 1);
}
}
}
}packagemytest;import java.awt.*;import javax.swing.*;import mytest.*;importmytest.Login;import java.awt.event.*;public class LoginView extends JPanel implementsActionListener{
Login login;
JTextField id;
JPasswordField pass;
JButton log,esc;booleansuccess;
LoginView(){
login= newLogin();
id= new JTextField(15);
pass= new JPasswordField(15);
log= new JButton("登录");
esc= new JButton("退出");
add(new JLabel("账号"));
add(id);
add(new JLabel("密码"));
add(pass);
add(log);
add(esc);
log.addActionListener(this);
esc.addActionListener(this);
}public booleanisSuccess() {returnsuccess;
}
@Overridepublic voidactionPerformed(ActionEvent e) {if(e.getSource()==esc) {
System.exit(0);
}if(e.getSource()==log) {
login.setID(id.getText());char [] pw =pass.getPassword();
login.setPassword(newString (pw));
HandleLog hl= newHandleLog();
login=hl.queryVerify(login);
success=login.getSuccess();
}
}
}packagemytest;import java.sql.*;importjavax.swing.JOptionPane;importmytest.Register;public classHandleReg {
Connection con;
PreparedStatement preSql;publicHandleReg() {try{
Class.forName("com.mysql.jdbc.Driver");
}catch(Exception e){}
String uri= "jdbc:mysql://localhost:3306/test?useSSL=true&characterEncoding=utf-8";try { //表名↑ 密码↓
con = DriverManager.getConnection(uri,"root","z123");
}catch(SQLException e) {System.out.println(e.toString());}
}public void writeReg(Register register) {//更新
String sqlStr = "insert into mess values(?,?,?,?,?,?)";int ok = 0;try{
preSql=con.prepareStatement(sqlStr);//链接
preSql.setString(1,register.getID());//更新数据
preSql.setString(2, register.getName());
preSql.setString(3, register.getSex());
preSql.setString(4, register.getBirth());
preSql.setString(5, register.getEmail());
preSql.setString(6, register.getPassword());
ok=preSql.executeUpdate();
con.close();
}catch(NullPointerException e){
System.out.println(e.toString());
}catch(SQLException e) {
System.out.println(e.toString());
JOptionPane.showMessageDialog(null,"id不能重复","警告",JOptionPane.WARNING_MESSAGE);//提示
}if(ok!=0) {
JOptionPane.showMessageDialog(null,"注册成功","恭喜",JOptionPane.WARNING_MESSAGE);
}
}
}packagemytest;import java.sql.*;importjavax.swing.JOptionPane;importmytest.Login;public classHandleLog {
Connection con;//链接
PreparedStatement pre;//驱动
ResultSet rs;publicHandleLog() {try{
Class.forName("com.mysql.jdbc.Driver");
}catch(Exception e){}
String uri= "jdbc:mysql://localhost:3306/test?useSSL=true&characterEncoding=utf-8";try { //ku名 密码↓
con = DriverManager.getConnection(uri,"root","zyk123");
}catch(Exception e){System.out.println(e.toString());}
}publicLogin queryVerify(Login logins) {
String id=logins.getID();
String pw=logins.getPassword();
String sqlStr= "select userID,password from mess where userID = ? and password = ?";//注意语法try{
pre=con.prepareStatement(sqlStr);
pre.setString(1,id);
pre.setString(2, pw);
rs=pre.executeQuery();if(rs.next()==true) {
logins.setSuccess(true);
JOptionPane.showMessageDialog(null,"登录成功","恭喜",JOptionPane.WARNING_MESSAGE);
}else{
logins.setSuccess(false);
JOptionPane.showMessageDialog(null,"登录失败","抱歉",JOptionPane.WARNING_MESSAGE);
}
}catch(Exception e){
System.out.println(e.toString());
}returnlogins;
}
}packagemytest;import java.sql.*;importjavax.swing.JOptionPane;importmytest.Login;public classHandleChange {
Connection con;
PreparedStatement sql;
ResultSet rs;publicHandleChange() {try{
Class.forName("com.mysql.jdbc.Driver");
}catch(Exception e){}
String uri= "jdbc:mysql://localhost:3306/test?useSSL=true&characterEncoding=utf-8";try { //数据库名 密码↓
con = DriverManager.getConnection(uri,"root","z123");
}catch(Exception e){
System.out.println(e.toString());
}if(con==null) return;
}publicChange query(Change ch) {
String id=ch.getID();
String pw=ch.getPassword();
String sqlStr= "update mess set password=? where userID =?";try{
sql=con.prepareStatement(sqlStr);
sql.setString(1,ch.getPassword());
sql.setString(2,ch.getID());int ok = sql.executeUpdate();//括号里面不能再写sqlStr
ch.setSuccess(true);
System.out.println(ok);
}catch(Exception e){
System.out.println(e.toString());
}returnch;
}
}packagemytest;importjava.awt.BorderLayout;importjavax.swing.JPanel;importjavax.swing.JTabbedPane;import java.awt.*;public class RLview extendsJPanel{
JTabbedPane p;
RegisterView reg;
LoginView log;
ChangePass pa;publicRLview() {
reg= newRegisterView();
log= newLoginView();
pa= newChangePass();
setLayout(newBorderLayout());
p=newJTabbedPane();
p.add("注册",reg);
p.add("登录",log);
p.add("修改密码",pa);
p.invalidate();
add(p,BorderLayout.CENTER);
}
}packagemytest;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JFrame;import mytest.*;importmytest.Login;importmytest.Register;public class RegAndLog extendsJFrame {
RLview rl;
RegAndLog(){
setBounds(100,100,800,260);
rl= newRLview();
add(rl);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
}public static voidmain(String args[]) {
RegAndLog window= newRegAndLog();
window.setTitle("登录");
}
}