资源描述
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); 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 = tf_user。getText(); / 获得用户名 String pass = String.valueOf(pf_pass.getPassword()); / 获得密码 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 = BaseDao.executeQuery(sqlStr); if (result。next()) username = result。getString(”name”); is_admin = result.getInt(”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.println(ex.getMessage(); / 取消按钮响应事件 private void btn_cancelActionPerformed(ActionEvent e) this.dispose(); /接受键盘响应事件 private class KeyEnter extends KeyAdapter Override public void keyPressed(KeyEvent e) int keycode = e。getKeyCode(); if (keycode = KeyEvent。VK_ENTER) btn_okActionPerformed(e); public static void main(String args) (new Login())。setVisible(true); 2、界面截图图1 登录界面图2 当输入的用户名为空时,弹出的消息框图3 当输入的用户名或密码不正确时,弹出的消息框图4 当登录不成功次数过多时,弹出的消息框3、 界面描述(1) 界面友好,简单明了(2) 提供了必要的功能(3) 具有较强的容错性(4) 具有较强的安全性5 实验体会我觉得系统登录界面的主要突显方面应该是安全性,所以我将界面做的看起来比较简单,但加入了登录的安全机制,例如当登录不成功次数过多时,会自动退出等。
展开阅读全文