【Java】运用JDBC实现一个注册、登录系统的编写

数据库的建立

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

其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("u6ce8u518cu8d26u53f7");
		jButton1.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jButton1ActionPerformed(evt);
			}
		});

		jButton2.setText("u627eu56deu5bc6u7801");
		jButton2.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jButton2ActionPerformed(evt);
			}
		});

		jCheckBox1.setText("u8bb0u4f4fu5bc6u7801");

		jCheckBox2.setText("u81eau52a8u767bu5f55");

		jButton3.setFont(new java.awt.Font("锟斤拷锟斤拷", 0, 18));
		jButton3.setText("u767bu5f55");
		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

}

效果图


源码下载

原文地址:https://www.cnblogs.com/jiangu66/p/3243799.html