java基础之登录程序
2024-09-13 13:01:02
注:此版本仅供学习使用!
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
最新文章
- 【CSS进阶】CSS 颜色体系详解
- Python的字节编译
- 推荐8个实现 SVG 动画的 JavaScript 库
- Asp.net WebPages框架运行原理浅析(转)
- 有关Highchart的那些事。。。备份一段(稍后修改)
- [转]人人网首页拖拽上传详解(HTML5 Drag&;Drop、FileReader API、formdata)
- mouseover 和 hover 方法
- mongo 1067错误
- Learning WCF Chapter1 Exposing Multiple Service Endpoints
- oracle2
- Dynamic Web Module 3.0 requires Java 1.6 or newer报错
- Android之Socket通信(一)
- Group by Grouping
- LSA和pLSA的比较
- Django——微信消息推送
- 深入理解java虚拟机(一)-----java内存区域以及内存溢出异常
- Listview自定义了子View导致listview的onitemclick事件无效
- Hadoop启动之后jps没有NameNode节点
- zk 的配额
- Visual Studio资源汇总
热门文章
- iOS App 内部跳转(设置、Wifi、蓝牙...)关键词
- 如何调用写好的指定模块?——sys.path
- Navicat premium连不上Oracle的问题解决
- python-flask之request的属性
- python 中文件夹的操作
- 【离散数学】 SDUT OJ 集合的包含
- 运用CSS高斯模糊添加图片加载效果
- clustalX2使用以及相关的问题
- 兼容 火狐、IE 的中a标签用 javascript:void(0); 依然执行跳转的问题
- C# 关于Grid下动态删除行列的操作