
正文
java基础之登录程序
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
注:此版本仅供学习使用!
Login.java
import java.awt.Font;
import java.awt.event.*;
import java.sql.*; import javax.swing.*;
import javax.swing.border.EmptyBorder; @SuppressWarnings("serial")
public class Login extends JFrame {
JLabel jla_tips;
JLabel jla_username;
JTextField jtf_username;
JLabel jla_password;
JPasswordField jpf_password;
JButton jbt_login;
JButton jbt_cancel;
int count=0; public Login() {
ImageIcon icon = new ImageIcon("images/favicon.png");
setIconImage(icon.getImage()); JPanel contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null); jla_tips = new JLabel();
jla_tips.setBounds(155, 40, 200, 25);
contentPane.add(jla_tips); jla_username = new JLabel("用户名:");
jla_username.setBounds(80, 70, 60, 25);
contentPane.add(jla_username); jtf_username = new JTextField();
jtf_username.setHorizontalAlignment(JTextField.LEFT);
jtf_username.setBounds(150, 70, 150, 25);
contentPane.add(jtf_username); jla_password = new JLabel("密 码:");
jla_password.setBounds(80, 120, 60, 25);
contentPane.add(jla_password); jpf_password = new JPasswordField();
jpf_password.setBounds(150, 120, 150, 25);
contentPane.add(jpf_password); // 登录按钮
jbt_login = new JButton("登录");
jbt_login.setFocusPainted(false);
jbt_login.setBounds(150, 170, 70, 30);
contentPane.add(jbt_login);
jbt_login.addActionListener(new loginListener());
jpf_password.addActionListener(new loginListener()); // 置空按钮
jbt_cancel = new JButton("取消");
jbt_cancel.setFocusPainted(false);
jbt_cancel.setBounds(235, 170, 70, 30);
contentPane.add(jbt_cancel);
jbt_cancel.addActionListener(new cancelListener()); // 背景图
Icon login3 = new ImageIcon("images/login3.jpg");
JLabel jla_login3 = new JLabel(login3);
jla_login3.setBounds(0, 0, 450, 300);
contentPane.add(jla_login3); // 字体设置
Font fontstr = new Font("宋体", Font.PLAIN, 14);
jla_username.setFont(fontstr);
jla_password.setFont(fontstr);
jla_tips.setFont(fontstr);
jbt_login.setFont(fontstr);
jbt_cancel.setFont(fontstr); setTitle("登录");
setSize(450, 300);
setLocationRelativeTo(null);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
} public class cancelListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent arg0) {
jtf_username.setText(null);
jpf_password.setText(null);
} }
public class loginListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
String username = jtf_username.getText().trim();
char[] values = jpf_password.getPassword();
String password = new String(values);
if (username != null && username.length() != 0 && password != null
&& password.length() != 0) {
try {
// 1.注册驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// 2.建立连接
// 2.1连接串
String DBurl = "jdbc:sqlserver://localhost:1433;DatabaseName=JavaDB";
String DBname="sa";
String DBpwd="940523";
Connection con = DriverManager.getConnection(DBurl,DBname,DBpwd); // 创建会话
// Statement st = con.createStatement();
// String sql = "select count(*) as cnt from T_user where username='"
// + username + "' and password='" + password + "'";
// ResultSet rs = st.executeQuery(sql); /*
* 防止SQL注入
*/
String sql = "select count(*) as cnt from T_user where username=? and password=?";
PreparedStatement st = con.prepareStatement(sql);
st.setString(1, username);
st.setString(2, password);
String sql2 = "select count(*) as cnt from T_user where username=?";
PreparedStatement st2 = con.prepareStatement(sql2);
st2.setString(1, username);
// 结果集
ResultSet rs = st.executeQuery();
ResultSet rs2 = st2.executeQuery(); rs.next();
rs2.next();
if (rs.getInt("cnt") > 0) {
setVisible(false);
new Hello();
} else if (rs2.getInt("cnt") == 0) {
JOptionPane.showMessageDialog(null, "无该用户!");
}else {
jla_tips.setText("密码错误!");
count++;
if(count==3){
JOptionPane.showMessageDialog(null, "登录失败超过三次!");
System.exit(0);
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
} else {
if (username.length() == 0 && password.length() == 0)
jla_tips.setText("帐号与密码均不能为空!");
else if (username.length() == 0)
jla_tips.setText("帐号不能为空!");
else if (password.length() == 0)
jla_tips.setText("密码不能为空!");
}
}
} public static void main(String[] args) {
new Login();
}
}
hello.java
import java.awt.Font;
import javax.swing.*;
import javax.swing.border.EmptyBorder; @SuppressWarnings("serial")
public class Hello extends JFrame {
JLabel jla_title; public Hello() {
ImageIcon icon = new ImageIcon("images/favicon.png");
setIconImage(icon.getImage()); JPanel contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null); jla_title = new JLabel();
jla_title.setText("欢迎使用本软件!");
jla_title.setBounds(120, 100, 200, 25);
// 字体设置
Font fontstr = new Font("宋体", Font.PLAIN, 26);
jla_title.setFont(fontstr);
contentPane.add(jla_title); setTitle("欢迎界面");
setSize(450, 300);
setLocationRelativeTo(null);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
} // public static void main(String[] args) {
// new Hello();
// }
}
下载链接:http://pan.baidu.com/s/1pJAtf1T密码: 1kkz








