1、程序代码package window;
import data.BaseDao;
import java.awt.AWTEvent;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.sql.ResultSet;
import javax.swing.*;
import javax.swing.plaf.FontUIResource;
import util.GlobalVar;
* 类Login 用于显示登录界面,要求系统用户输入正确的用户名和密码。
*
* @author raymond
*/
public class Login extends JFrame {
private JLabel lb_user;
private JTextField tf_user;
private JLabel lb_pass; private JPasswordField pf_pass;
private JButton btn_ok;
private JButton btn_cancel;
private int num = 0;// 用来记录登陆不成功的次数
public Login() {
UIUtil.setUIFont(new FontUIResource(" 宋体", Font.BOLD, 15));
initComponents();
}
// 初始化组件
private void initComponents() {
lb_user = new JLabel();
tf_user = new JTextField();// 用户名输入文本框lb_pass = new
JLabel();
pf_pass = new JPasswordField();// 密码输入文本框btn_ok = new
JButton();// 确认按钮
btn_cancel = new JButton();// 取消按钮
setTitle(" 用户登录界面");
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container contentPane = getContentPane(); contentPane.setLayout(new
GridLayout(3, 2));
lb_user.setText(" 用户名:");
lb_user.setHorizontalAlignment(SwingConstants.RIGHT);
tf_user.addKeyListener(new KeyEnter());
contentPane.add(lb_user);
contentPane.add(tf_user);
java图书馆最新lb_pass.setText(”密码:”);
lb_pass.setHorizontalAlignment(SwingConstants.RIGHT);
pf_pass.addKeyListener(new KeyEnter());
contentPane.add(lb_pass); contentPane.add(pf_pass);
btn_ok.setText("确定");
btn_ok.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e)
{ btn_okActionPerformed(e);
}
});
contentPane.add(btn_ok);
btn_cancel.setText(”取消");
btn_cancel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e)
{ btn_cancelActionPerformed(e);
}
});
contentPane.add(btn_cancel);
setSize(225, 150);
setLocationRelativeTo(getOwner());
}
// "确定"按钮响应事件
private void btn_okActionPerformed(AWTEvent e) {
String user = Text(); // 获得用户名
String pass = String.valueOf(Password()); // 获得密码
String username;
int is_admin;
// 未输入用户名
if (user.equals("")) {
JOptionPane.showMessageDialog(this, " 用户名不允许为空!"); return;
}
try {
// 在数据库中查询
String sqlStr = "select * from users where name='" + user
+ "' and pass='" + pass + "'";
ResultSet result = uteQuery(sqlStr);
if (()) {
username = String("name");
is_admin = Int("is_admin");
BaseDao.close();
} else {
JOptionPane.showMessageDialog(this, " 用户名或密码不正确!");
BaseDao.close();
//当登录不成功次数超过3 次,则自动退出
if (num < 3) {
num++;
} else {
JOptionPane.showMessageDialog(this, " 尝试次数过多!");
this.dispose();
}
return;
}
GlobalVar.login_user = username; // 记录当前用户
// 进入主界面
Main main = new Main();
main.setPurView((byte) is_admin);
this.dispose();
} catch (Exception ex) {
System.out.Message());
II”取消”按钮响应事件
private void btn_ca ncelActio nPerformed(Actio nEve nt e) { this.dispose();
}
}
//接受键盘响应事件
private class KeyE nter exte nds KeyAdapter {
@Override
public void keyPressed(KeyEve nt e) {
int keycode = e.getKeyCode();
if (keycode == KeyEve nt.VK_ENTER) { btn_okActio nPerformed(e);
}
} public static void main(String args[]) {
(new Log in ()).setVisible(true);
2、界面截图
图1登录界面
3、界面描述
图2当输入的用户名为空时,弹出的消息框
图3当输入的用户名或密码不正确时,弹出的消息框图4当登录不成功次数过多时,弹出的消息框
(1) 界面友好,简单明了
(2) 提供了必要的功能
(3) 具有较强的容错性
(4) 具有较强的安全性五•实验体会
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论