数据库的建立

首先,建立一个数据库,存储注册成功的账户信息。

其SQL的DDL语句如下:

CREATE TABLE `jdbctest` (
`id` int(10) NOT NULL auto_increment,
`username` varchar(20) default NULL,
`password` varchar(20) default NULL,
`realName` varchar(10) default NULL,
`sex` char(1) default NULL,
`phone` varchar(20) default NULL,
`email` varchar(30) default NULL,
`vocation` varchar(10) default NULL,
`city` varchar(10) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

示意图



处理SQL代码的方法

以下方法存储在BaseDAO.java文件中。

变量声明

	Connection connection;
Statement statement;
PreparedStatement pStatement;
ResultSet rSet;

处理增删改的SQL语句

	/** PreparedStatement 预编译之查询拓展版 */
public ArrayList<HashMap<Object, Object>> Query(String sql,Object[] s) {
ArrayList<HashMap<Object, Object>> list = null;
getConnection();
try {
pStatement = connection.prepareStatement(sql);
for (int i = 0; i < s.length; i++) {
pStatement.setObject(i+1, s[i]);
}
rSet = pStatement.executeQuery();
list = ResultSetToList(rSet);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}

处理查询类的SQL语句

	/** 查询并返回记录集 */
public ResultSet getResultSet(String sql, Object[] objArr){
getConnection();
try {
pStatement = connection.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
if(objArr!=null && objArr.length>0) {
for (int i = 0; i < objArr.length; i++) {
pStatement.setObject(i+1, objArr[i]);
}
}
rSet = pStatement.executeQuery();
//list = resultSetToList(rs);
} catch (SQLException e) {
e.printStackTrace();
} finally {
//close();
}
return rSet;
}

关闭并释放资源

	/** 关闭并释放资源 */
public void close(){
try {
if(statement!=null){
statement.close();
statement = null;
}
if(pStatement!=null){
pStatement.close();
pStatement = null;
}
if(connection!=null){
connection.close();
connection = null;
}
} catch (Exception e) {
System.out.println("数据库close异常");
}
}

处理用户信息的方法

以下方法存储在UserDAO.java中,类UserDAO继承自类BaseDAO。

注册

	public boolean Reg(String[] arr){
BaseDAO bDao = new BaseDAO();
String sql ="INSERT INTO jdbctest(username,password,realName,sex,phone,email,vocation,city) values(?,?,?,?,?,?,?,?);" ;
bDao.Update(sql, arr);
return true;
}

验证用户名唯一性

	public boolean Unique(String nameString) {
BaseDAO bDao = new BaseDAO();
String[] s = {nameString};
ArrayList<HashMap<Object, Object>> list = bDao.Query("SELECT * FROM jdbctest WHERE username=?;",s);
if (list.isEmpty()) {
return true;
}
return false;
}

判断是否成功登录

	public boolean login(String username, String password){
BaseDAO bDao = new BaseDAO();
String[] s = {username ,password};
ArrayList<HashMap<Object, Object>> list = bDao.Query("SELECT * FROM jdbctest WHERE username=? and password=?;",s);
if (list.isEmpty()) {
return false;
}
return true;
}

注册窗口

Java代码

/*
* RegisteFrame.java
*
* Created on __DATE__, __TIME__
*/ package com.ui; import javax.swing.JOptionPane; import com.dao.UserDAO; /**
*
* @author __USER__
*/
public class RegisteFrame extends javax.swing.JFrame { /** Creates new form RegisteFrame */
public RegisteFrame() {
initComponents();
setResizable(false);
setLocation(400, 160);
}
public RegisteFrame(String s) {
super(s);
initComponents();
setResizable(false);
setLocation(400, 150);
} /** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() { buttonGroup1 = new javax.swing.ButtonGroup();
buttonGroup2 = new javax.swing.ButtonGroup();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jPasswordField1 = new javax.swing.JPasswordField();
jPasswordField2 = new javax.swing.JPasswordField();
jLabel5 = new javax.swing.JLabel();
jTextField2 = new javax.swing.JTextField();
jLabel6 = new javax.swing.JLabel();
jTextField3 = new javax.swing.JTextField();
jLabel7 = new javax.swing.JLabel();
jRadioButton1 = new javax.swing.JRadioButton();
jRadioButton2 = new javax.swing.JRadioButton();
jLabel8 = new javax.swing.JLabel();
jTextField4 = new javax.swing.JTextField();
jLabel9 = new javax.swing.JLabel();
jTextField5 = new javax.swing.JTextField();
jLabel10 = new javax.swing.JLabel();
jTextField6 = new javax.swing.JTextField();
jToggleButton1 = new javax.swing.JToggleButton();
jToggleButton2 = new javax.swing.JToggleButton();
jButton1 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabel1.setFont(new java.awt.Font("Segoe UI", 0, 24));
jLabel1.setText("Membership Registration"); jLabel2.setFont(new java.awt.Font("Segoe UI", 0, 14));
jLabel2.setText("UserName (*)"); jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField1ActionPerformed(evt);
}
}); jLabel3.setFont(new java.awt.Font("Segoe UI", 0, 14));
jLabel3.setText("PassWord (*)"); jLabel4.setFont(new java.awt.Font("Segoe UI", 0, 14));
jLabel4.setText("PassWord Verify (*)"); jPasswordField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jPasswordField1ActionPerformed(evt);
}
}); jPasswordField2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jPasswordField2ActionPerformed(evt);
}
}); jLabel5.setFont(new java.awt.Font("Segoe UI", 0, 14));
jLabel5.setText("Your RealName"); jTextField2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField2ActionPerformed(evt);
}
}); jLabel6.setFont(new java.awt.Font("Segoe UI", 0, 14));
jLabel6.setText("Your E-mail"); jTextField3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField3ActionPerformed(evt);
}
}); jLabel7.setFont(new java.awt.Font("Segoe UI", 0, 14));
jLabel7.setText("Your Sex"); jRadioButton1.setFont(new java.awt.Font("Segoe UI", 0, 14));
jRadioButton1.setText("Man");
jRadioButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jRadioButton1ActionPerformed(evt);
}
}); jRadioButton2.setFont(new java.awt.Font("Segoe UI", 0, 14));
jRadioButton2.setText("WoMan");
jRadioButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jRadioButton2ActionPerformed(evt);
}
}); jLabel8.setFont(new java.awt.Font("Segoe UI", 0, 14));
jLabel8.setText("Your Vocation"); jTextField4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField4ActionPerformed(evt);
}
}); jLabel9.setFont(new java.awt.Font("Segoe UI", 0, 14));
jLabel9.setText("Your City"); jTextField5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField5ActionPerformed(evt);
}
}); jLabel10.setFont(new java.awt.Font("Segoe UI", 0, 14));
jLabel10.setText("Your Phone"); jTextField6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField6ActionPerformed(evt);
}
}); jToggleButton1.setFont(new java.awt.Font("Segoe UI", 0, 18));
jToggleButton1.setText("registe");
jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jToggleButton1ActionPerformed(evt);
}
}); jToggleButton2.setFont(new java.awt.Font("Segoe UI", 0, 18));
jToggleButton2.setText("clean");
jToggleButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jToggleButton2ActionPerformed(evt);
}
}); jButton1.setFont(new java.awt.Font("Segoe UI", 0, 18));
jButton1.setText("login");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
}); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(
javax.swing.GroupLayout.Alignment.LEADING,
layout.createSequentialGroup()
.addContainerGap(
59,
Short.MAX_VALUE)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(
jLabel1)
.addGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(
jLabel6)
.addComponent(
jLabel7)
.addComponent(
jLabel4)
.addComponent(
jLabel9)
.addComponent(
jLabel10)
.addComponent(
jLabel8)
.addComponent(
jLabel5)
.addComponent(
jLabel3)
.addComponent(
jLabel2))
.addGap(43,
43,
43)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING,
false)
.addComponent(
jTextField6)
.addComponent(
jTextField5)
.addComponent(
jTextField4)
.addComponent(
jTextField3)
.addComponent(
jTextField2)
.addComponent(
jPasswordField2,
javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(
jPasswordField1)
.addComponent(
jTextField1,
javax.swing.GroupLayout.DEFAULT_SIZE,
138,
Short.MAX_VALUE)
.addGroup(
layout.createSequentialGroup()
.addComponent(
jRadioButton1)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(
jRadioButton2))))))
.addGroup(
javax.swing.GroupLayout.Alignment.LEADING,
layout.createSequentialGroup()
.addGap(73, 73,
73)
.addComponent(
jButton1)
.addGap(18, 18,
18)
.addComponent(
jToggleButton1)
.addGap(18, 18,
18)
.addComponent(
jToggleButton2)))
.addGap(87, 87, 87)));
layout.setVerticalGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addGap(13, 13, 13)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(
jTextField1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(
jPasswordField1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3))
.addGap(11, 11, 11)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(
jPasswordField2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(
jTextField2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel6)
.addComponent(
jTextField3,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel7)
.addComponent(jRadioButton1)
.addComponent(jRadioButton2))
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel8)
.addComponent(
jTextField4,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel9)
.addComponent(
jTextField5,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel10)
.addComponent(
jTextField6,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jToggleButton1)
.addComponent(jToggleButton2))
.addContainerGap(26, Short.MAX_VALUE))); pack();
}// </editor-fold>
//GEN-END:initComponents private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:登录
LoginFrame lFrame = new LoginFrame("用户登录");
lFrame.setVisible(true);
this.setVisible(false);
} private void jToggleButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here: 清空
jTextField1.setText(null);
jTextField2.setText(null);
jTextField3.setText(null);
jTextField4.setText(null);
jTextField5.setText(null);
jTextField6.setText(null);
jPasswordField1.setText(null);
jPasswordField2.setText(null);
jRadioButton1.setSelected(false);
jRadioButton2.setSelected(false);
} boolean registe = false; public boolean Regist() {
return registe;
} private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here: 登录
UserDAO uDao = new UserDAO();
if (jTextField1.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "用户名不能为空!", "注册失败",
JOptionPane.ERROR_MESSAGE);
} else if (jPasswordField1.getText().isEmpty()
|| jPasswordField1.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "密码栏不能为空!", "注册失败",
JOptionPane.ERROR_MESSAGE);
} else if (!jPasswordField1.getText().equals(jPasswordField2.getText())) {
JOptionPane.showMessageDialog(null, "两次输入的密码不一致!", "注册失败",
JOptionPane.ERROR_MESSAGE);
jPasswordField1.setText(null);
jPasswordField2.setText(null);
} else if (! uDao.Unique(jTextField1.getText())) {
JOptionPane.showMessageDialog(null, "该用户名已被注册,请重新输入!", "注册失败",
JOptionPane.ERROR_MESSAGE);
jTextField1.setText(null);
jPasswordField1.setText(null);
jPasswordField2.setText(null);
}else {
JOptionPane.showMessageDialog(null, "账号已注册成功!", "注册成功",
JOptionPane.INFORMATION_MESSAGE);
uDao.Reg(UserInformation());
registe = true;
}
} public String[] UserInformation() {
String[] infor = { null, null, null, null, null, null, null, null };
infor[0] = jTextField1.getText();
infor[1] = jPasswordField1.getText();
infor[2] = jTextField2.getText(); //真实姓名
infor[3] = (!jRadioButton1.isSelected() && !jRadioButton2.isSelected()) ? ""
: (jRadioButton1.isSelected()) ? "男" : "女"; //性别
infor[4] = jTextField6.getText(); //电话
infor[5] = jTextField3.getText(); //邮箱
infor[6] = jTextField4.getText(); //职业
infor[7] = jTextField5.getText(); //城市
return infor;
} private void jTextField6ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here: 电话
} private void jTextField5ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here: 城市
} private void jTextField4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here: 职业
} private void jRadioButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here: 性别 女
if (jRadioButton1.isSelected()) {
jRadioButton1.setSelected(false);
}
} private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here: 性别 男
if (jRadioButton2.isSelected()) {
jRadioButton2.setSelected(false);
}
} private void jTextField3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here: 邮箱
} private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here: 真实姓名
} private void jPasswordField2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here: 确认密码
} private void jPasswordField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here: 密码
} private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here: UserName
} /**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
RegisteFrame rFrame = new RegisteFrame("用户注册");
rFrame.setVisible(true);
}
});
} //GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.ButtonGroup buttonGroup2;
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPasswordField jPasswordField1;
private javax.swing.JPasswordField jPasswordField2;
private javax.swing.JRadioButton jRadioButton1;
private javax.swing.JRadioButton jRadioButton2;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
private javax.swing.JTextField jTextField5;
private javax.swing.JTextField jTextField6;
private javax.swing.JToggleButton jToggleButton1;
private javax.swing.JToggleButton jToggleButton2;
// End of variables declaration//GEN-END:variables }

效果图


底部的三个按钮分别用于 进入登录界面、注册、清除注册信息。

登录界面

Java代码

package com.ui;

import java.io.IOException;
import java.net.URL;
import java.net.URLConnection; import javax.swing.JFrame;
import javax.swing.JOptionPane; import com.dao.UserDAO; /**
*
* @author __USER__
*/
public class LoginFrame extends javax.swing.JFrame { /** Creates new form Test4QQ */
public LoginFrame() {
initComponents();
setResizable(false);
setBounds(450,230,380,310);
}
public LoginFrame(String string) {
super(string);
initComponents();
setResizable(false);
setBounds(450,230,380,310);
}
//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() { jColorChooser1 = new javax.swing.JColorChooser();
jColorChooser2 = new javax.swing.JColorChooser();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jCheckBox1 = new javax.swing.JCheckBox();
jCheckBox2 = new javax.swing.JCheckBox();
jButton3 = new javax.swing.JButton();
jPasswordField1 = new javax.swing.JPasswordField(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabel1.setIcon(new javax.swing.ImageIcon(
"qq1.png")); // NOI18N jLabel2.setIcon(new javax.swing.ImageIcon(
"qq.png")); // NOI18N jTextField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jTextField1ActionPerformed(evt);
}
}); jButton1.setText("\u6ce8\u518c\u8d26\u53f7");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
}); jButton2.setText("\u627e\u56de\u5bc6\u7801");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
}); jCheckBox1.setText("\u8bb0\u4f4f\u5bc6\u7801"); jCheckBox2.setText("\u81ea\u52a8\u767b\u5f55"); jButton3.setFont(new java.awt.Font("锟斤拷锟斤拷", 0, 18));
jButton3.setText("\u767b\u5f55");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
}); jPasswordField1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jPasswordField1ActionPerformed(evt);
}
}); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addGroup(
layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel2)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout.createSequentialGroup()
.addGap(18, 18,
18)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.TRAILING,
false)
.addComponent(
jPasswordField1)
.addComponent(
jTextField1,
javax.swing.GroupLayout.DEFAULT_SIZE,
130,
Short.MAX_VALUE))
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED,
25,
Short.MAX_VALUE)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(
jButton1)
.addComponent(
jButton2))
.addGap(26, 26,
26))
.addGroup(
layout.createSequentialGroup()
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
jCheckBox1)
.addGap(44, 44,
44)
.addComponent(
jCheckBox2))))
.addGroup(
layout.createSequentialGroup()
.addGap(113, 113, 113)
.addComponent(jButton3,
javax.swing.GroupLayout.PREFERRED_SIZE,
138,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(123, Short.MAX_VALUE)));
layout.setVerticalGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout.createSequentialGroup()
.addComponent(jLabel1)
.addGap(10, 10, 10)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout.createSequentialGroup()
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(
jLabel2))
.addGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(
jButton1)
.addComponent(
jTextField1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(
jButton2)
.addComponent(
jPasswordField1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(
jCheckBox1)
.addComponent(
jCheckBox2))))
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE).addComponent(jButton3)
.addContainerGap())); pack();
}// </editor-fold>
//GEN-END:initComponents private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
} private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
RegisteFrame rFrame = new RegisteFrame();
rFrame.setVisible(true);
this.setVisible(false);
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// MemberFrame mFrame = new MemberFrame();
// mFrame.setVisible(true);
// this.setVisible(false);
} private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
UserDAO uDao = new UserDAO();
if (uDao.login(jTextField1.getText(), jPasswordField1.getText())) {
// JOptionPane.showMessageDialog(null, "您登录成功啦!", "登录成功",
// JOptionPane.INFORMATION_MESSAGE);
String string = "欢迎用户: "+jTextField1.getText()+" 登录!";
MemberFrame mFrame = new MemberFrame(string);
mFrame.setVisible(true);
this.setVisible(false);
} else {
JOptionPane.showMessageDialog(null, "用户名或密码错误,请重新输入!", "登录失败",
JOptionPane.ERROR_MESSAGE);
jPasswordField1.setText(null);
}
} private void jPasswordField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
} /**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
LoginFrame lFrame = new LoginFrame();
lFrame.setVisible(true);
lFrame.setTitle("用户登录");
}
});
} //GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JCheckBox jCheckBox1;
private javax.swing.JCheckBox jCheckBox2;
private javax.swing.JColorChooser jColorChooser1;
private javax.swing.JColorChooser jColorChooser2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JPasswordField jPasswordField1;
private javax.swing.JTextField jTextField1;
// End of variables declaration//GEN-END:variables }

效果图



源码下载

【Java】运用JDBC实现一个注册、登录系统的编写的更多相关文章

  1. 一个基于Unix套接字的注册登录系统

    2016/5/5 今天,我参考<Unix网络编程-卷1>第5章的TCP回射客户/服务器程序写了一个简单的注册登录系统,其功能如下:(1)注册.客户端向服务器发送个人信息请求注册,服务器查询 ...

  2. php注册登录系统(一)-极简

    序 登录注册系统是日常上网最普通的操作,我设了一个分类一步步完善注册登录系统,若有哪里错误请慧教 所用语言:php 数据库 :mysql 本次实现功能: 1.用户注册 2.用户登录 主要文件: 完整代 ...

  3. 基于javaweb人脸识别注册登录系统

    ---恢复内容开始--- 现在是2019年,人脸识别技术已经相当成熟了,百度自2017年发布人脸识别技术,已经被广泛应用,不管从现在的iphoneX掀起的面部解锁到手机应用端的各种人脸认证,这一技术已 ...

  4. Django+bootstrap+注册登录系统

    转自:https://www.cnblogs.com/robindong/p/9610057.html Robin_D 博客园 首页 新随笔 联系 订阅 管理 随笔 - 10  文章 - 0  评论 ...

  5. JavaWeb笔记——注册登录系统项目思路

    功能:   > 注册   > 登录 --------------------------------- JSP:   * login.jsp  --> 登录表单   * regist ...

  6. 注册登录系统项目思路 -- javaweb

    功能:   > 注册   > 登录   ---------------------------------   JSP:   * login.jsp  --> 登录表单   * re ...

  7. 利用shell脚本做一个用户登录系统

    效果图如下: #!/bin/bash# while truedocat << EOF//======================\\\\| 用户登录系统 |-------------- ...

  8. Java带token验证的注册登录

    http://blog.csdn.net/huqingpeng321/article/details/52900550 http://blog.csdn.net/l18710006370/articl ...

  9. Java学习笔记——实现一个简易记事本Notepad的编写

    记事本功能介绍 1.   新建:记事本清空. 2.   打开:可打开笔记本上任意文本文件. 3.   保存:将文件保存至当前文件夹. 4.   另存为:将文件保存至任意位置. 5.   退出:退出时确 ...

随机推荐

  1. java WEB Response重定向和缓存控制

    package cn.com; import java.io.IOException; import javax.servlet.ServletException; import javax.serv ...

  2. LeetCode: LRU Cache [146]

    [题目] Design and implement a data structure for Least Recently Used (LRU) cache. It should support th ...

  3. 操作系统概念学习笔记 10 CPU调度

    操作系统概念学习笔记 10 CPU调度 多道程序操作系统的基础.通过在进程之间切换CPU.操作系统能够提高计算机的吞吐率. 对于单处理器系统.每次仅仅同意一个进程执行:不论什么其它进程必须等待,直到C ...

  4. MyBatis简单的增删改查以及简单的分页查询实现

    MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...

  5. android中保存Bitmap图片到指定文件夹中的方法

    /** 保存方法 */  public void saveBitmap() {   Log.e(TAG, "保存图片");   File f = new File("/s ...

  6. Servlet的学习(三)

    本篇接上一篇<Servlet的学习(二)> ,主要讲诉如何使用MyEclipse来开发Servlet,和导入Servlet所需要的源代码. 现在我们来创建一个web应用,就叫[myserv ...

  7. express for node 路由route几种实现方式的思考

    1.路由实现方式和顺序 express框架创建的模板app,js中默认代码 var express = require('express'); var routes = require('./rout ...

  8. 用asio的定时器实现带超时的connect,备忘

    // test.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <boost/asio.hpp> #inclu ...

  9. JavaScript快速入门(四)——JavaScript函数

    函数声明 之前说的三种函数声明中(参见JavaScript快速入门(二)——JavaScript变量),使用Function构造函数的声明方法比较少见,我们暂时不提.function func() { ...

  10. ViEmu For VS2010 3.0 解除30天限制的方法

    一.概述 首先,ViEmu试用版在安装时会记录安装的时间,用于判断是否已经过了限制的时间,这个时间记录在注册表中 以本人的机器(WIN7X64)为例,它记录在 HKEY_CLASSES_ROOT\Wo ...