java 我想做一个注册系统

我想用java做一个注册系统
想分3种情况考虑
1:当密码和确认密码不一样时候 弹出一个对话框提示2次密码不一样
2:从表中读去username的值和注册username一样 提示该用户已经注册
3:把username and password 写入到表中
我自己做了一个
老是不正确 代码是这样的 希望各前辈多多指教
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class Reg1 extends JFrame implements ActionListener
{
JLabel jll,jlu,jlp,jlp1;
JTextField jtu;
JPasswordField jtp,jtp1;;
JButton jbr;
Panel p1,p2,p3;
String s1,s2;
Reg1()
{
super("用户注册");
jll=new JLabel("用户注册");
jlu=new JLabel("username");
jtu=new JTextField(10);
//jtp=new JTextField(10);
jtp=new JPasswordField(10);

jtp.setEchoChar('*');
jtp1=new JPasswordField(10);

jtp1.setEchoChar('*');

jlp=new JLabel("password");
jlp1=new JLabel("确认密码");
// jbj=new JButton("进入");
jbr=new JButton("注册");
jbr.addActionListener(this);
p1=new Panel();
p2=new Panel();
p3=new Panel();
p1.add(jll);
p2.add(jlu);
p2.add(jtu);
p2.add(jlp);
p2.add(jtp);
p2.add(jlp1);
p2.add(jtp1);
//d p3.add(jbj);
p3.add(jbr);
Container ct=getContentPane();
ct.setLayout(new BorderLayout());
p2.setLayout(new GridLayout(3,2));
p3.setLayout(new GridLayout(1,1));
ct.add(p1,BorderLayout.NORTH);
ct.add(p2,BorderLayout.CENTER);
ct.add(p3,BorderLayout.SOUTH);

}
public void actionPerformed(ActionEvent e)
{
String s1=jtu.getText();
String s2=jtp.getText();
String username;

if(e.getSource()==jbr)
{
try
{

//加载驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

String dburl ="jdbc:odbc:aa";//此为ODBC连接方式
//创建连接
Connection conn=DriverManager.getConnection(dburl);
//创建SQL操作语句
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select username,password from infor");
while(rs.next())
{
username=rs.getString(1);
if(username.equals(s1))
{
System.out.println("用户名存在");

}
else
{

String s="INSERT into infor values('"+s1+"','"+s2+"')";
stmt.executeUpdate(s);
}

//String s="INSERT into infor values('"+s1+"','"+s2+"')";
// stmt.executeUpdate(s);
//集合集
// ResultSet rs=stmt.executeQuery("select Top 20 * from MobileSection");

rs.close();
stmt.close();
conn.close();//关闭连接
}
}

catch(Exception e1)
{
System.out.println("aaa");
}
}
}

// else
// {
// System.out.println("二次输入密码不一样");
// }

public static void main(String args[])
{
Reg1 r1=new Reg1();
r1.setSize(200,150);
r1.setVisible(true);
}

}

第1个回答  2008-02-03
这样判断就可以了,你根本就没有得到确认密码的值啊

public void actionPerformed(ActionEvent e) {
String s1 = jtu.getText();//用户名
String s2 = jtp.getText();//密码
String s22 = jtp1.getText();//确认密码
String username;
if (e.getSource() == jbr) {
if(s2.equals(s22)){
System.out.println("二次输入密码不一样");
return;
}
try {

// 加载驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

String dburl = "jdbc:odbc:aa";// 此为ODBC连接方式
// 创建连接
Connection conn = DriverManager.getConnection(dburl);
// 创建SQL操作语句
Statement stmt = conn.createStatement();
ResultSet rs = stmt
.executeQuery("select username,password from infor");
while (rs.next()) {
username = rs.getString(1);
if (username.equals(s1)) {
System.out.println("用户名存在");
return;
} else {

String s = "INSERT into infor values('" + s1 + "','"
+ s2 + "')";
stmt.executeUpdate(s);
}
rs.close();
stmt.close();
conn.close();// 关闭连接
}
}

catch (Exception e1) {
System.out.println("aaa");
}
}
}
第2个回答  2008-02-12
public void actionPerformed(ActionEvent e)
{
String s1=jtu.getText();
String s2=jtp.getText();
String username;

if(e.getSource()==jbr)
{
if(s2.equals(s22)){
System.out.println("二次输入密码不一样");
break;
}
else
{
try
{

//加载驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

String dburl ="jdbc:odbc:aa";//此为ODBC连接方式
//创建连接
Connection conn=DriverManager.getConnection(dburl);
//创建SQL操作语句
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select username,password from infor");
while(rs.next())
{
username=rs.getString(1);
if(username.equals(s1))
{
System.out.println("用户名存在");
break;

}
else
{

String s="INSERT into infor values('"+s1+"','"+s2+"')";
stmt.executeUpdate(s);
}

//String s="INSERT into infor values('"+s1+"','"+s2+"')";
// stmt.executeUpdate(s);
//集合集
// ResultSet rs=stmt.executeQuery("select Top 20 * from MobileSection");

rs.close();
stmt.close();
conn.close();//关闭连接
}
}

catch(Exception e1)
{
System.out.println("aaa");
}
}
}

// else
// {
// System.out.println("二次输入密码不一样");
// }

}

//初看之下你这个程序有两点问题,一.你判断两次密码输入上需要用到JPASSWORD控件,需要对其中的输入内容进行判断,原来的程序里没有.
二.当用游标循环判断输入用户名是否已经注册问题上,一旦判断到已经注册用户时需要及时打断,否则会无故添加已经注册过的用户名.
第3个回答  推荐于2016-04-12
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;

public class Reg1 extends JFrame implements ActionListener {
JLabel jll, jlu, jlp, jlp1;
JTextField jtu;
JPasswordField jtp, jtp1; ;
JButton jbr;
Panel p1, p2, p3;
String s1, s2, s3;
Reg1() {
super("用户注册");
jll = new JLabel("用户注册");
jlu = new JLabel("username");
jtu = new JTextField(10);
//jtp=new JTextField(10);
jtp = new JPasswordField(10);

jtp.setEchoChar('*');
jtp1 = new JPasswordField(10);

jtp1.setEchoChar('*');

jlp = new JLabel("password");
jlp1 = new JLabel("确认密码");
// jbj=new JButton("进入");
jbr = new JButton("注册");
jbr.addActionListener(this);
p1 = new Panel();
p2 = new Panel();
p3 = new Panel();
p1.add(jll);
p2.add(jlu);
p2.add(jtu);
p2.add(jlp);
p2.add(jtp);
p2.add(jlp1);
p2.add(jtp1);
//d p3.add(jbj);
p3.add(jbr);
Container ct = getContentPane();
ct.setLayout(new BorderLayout());
p2.setLayout(new GridLayout(3, 2));
p3.setLayout(new GridLayout(1, 1));
ct.add(p1, BorderLayout.NORTH);
ct.add(p2, BorderLayout.CENTER);
ct.add(p3, BorderLayout.SOUTH);

}

public void actionPerformed(ActionEvent e) {
String s1 = jtu.getText();
String s2 = String.valueOf(jtp.getPassword()); ////获取密码的安全方法
String s3 = String.valueOf(jtp1.getPassword()); ////获得验证密码
String username;
if (e.getSource() == jbr) {
try {
//加载驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

String dburl = "jdbc:odbc:aa"; //此为ODBC连接方式
//创建连接
Connection conn = DriverManager.getConnection(dburl);
//创建SQL操作语句
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(
"select username,password from infor");
while (rs.next()) {
username = rs.getString(1);
if (username.equals(s1)) {
System.out.println("用户名存在");
JOptionPane.showMessageDialog(this,"用户名存在");// 弹出对话框
}else if(s2!=s3){//验证二次密码 (应放在事件中)
JOptionPane.showMessageDialog(this,"二次输入密码不一样");// 弹出对话框
}else {
String s = "INSERT into infor values('" + s1 + "','" +
s2 + "')";
stmt.executeUpdate(s);
}
//String s="INSERT into infor values('"+s1+"','"+s2+"')";
// stmt.executeUpdate(s);
//集合集
// ResultSet rs=stmt.executeQuery("select Top 20 * from MobileSection");
rs.close();
stmt.close();
conn.close(); //关闭连接
}
}
catch (Exception e1) {
System.out.println("aaa");
}

}
}

public static void main(String args[]) {
Reg1 r1 = new Reg1();
r1.setSize(200, 150);
r1.setVisible(true);
}
}本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网