注:此版本仅供学习使用!

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

最新文章

  1. 【CSS进阶】CSS 颜色体系详解
  2. Python的字节编译
  3. 推荐8个实现 SVG 动画的 JavaScript 库
  4. Asp.net WebPages框架运行原理浅析(转)
  5. 有关Highchart的那些事。。。备份一段(稍后修改)
  6. [转]人人网首页拖拽上传详解(HTML5 Drag&Drop、FileReader API、formdata)
  7. mouseover 和 hover 方法
  8. mongo 1067错误
  9. Learning WCF Chapter1 Exposing Multiple Service Endpoints
  10. oracle2
  11. Dynamic Web Module 3.0 requires Java 1.6 or newer报错
  12. Android之Socket通信(一)
  13. Group by Grouping
  14. LSA和pLSA的比较
  15. Django——微信消息推送
  16. 深入理解java虚拟机(一)-----java内存区域以及内存溢出异常
  17. Listview自定义了子View导致listview的onitemclick事件无效
  18. Hadoop启动之后jps没有NameNode节点
  19. zk 的配额
  20. Visual Studio资源汇总

热门文章

  1. iOS App 内部跳转(设置、Wifi、蓝牙...)关键词
  2. 如何调用写好的指定模块?——sys.path
  3. Navicat premium连不上Oracle的问题解决
  4. python-flask之request的属性
  5. python 中文件夹的操作
  6. 【离散数学】 SDUT OJ 集合的包含
  7. 运用CSS高斯模糊添加图片加载效果
  8. clustalX2使用以及相关的问题
  9. 兼容 火狐、IE 的中a标签用 javascript:void(0); 依然执行跳转的问题
  10. C# 关于Grid下动态删除行列的操作