1、/* * 类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
2、() 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();/取消按
3、钮 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
4、.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 actionPer
5、formed(ActionEvent e) btn_okActionPerformed(e); ); contentPane.add(btn_ok); btn_cancel.setText(取消 btn_cancel.addActionListener(new ActionListener() btn_cancelActionPerformed(e); contentPane.add(btn_cancel); setSize(225, 150); setLocationRelativeTo(getOwner(); / 按钮响应事件 private void btn_okActionPerfor
6、med(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 + a
7、nd 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, 用户名或密码不正确! /当登录不成功次数超过3次,则自动退出 if (num 3) num+; else JOptionPane.showMessageDialog(this,
8、 尝试次数过多! 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
9、 class KeyEnter extends KeyAdapter Override public void keyPressed(KeyEvent e) int keycode = e.getKeyCode(); if (keycode = KeyEvent.VK_ENTER) public static void main(String args) (new Login().setVisible(true);2、界面截图图1 登录界面图2 当输入的用户名为空时,弹出的消息框图3 当输入的用户名或密码不正确时,弹出的消息框图4 当登录不成功次数过多时,弹出的消息框3、 界面描述(1) 界面友好,简单明了(2) 提供了必要的功能(3) 具有较强的容错性(4) 具有较强的安全性五 实验体会我觉得系统登录界面的主要突显方面应该是安全性,所以我将界面做的看起来比较简单,但加入了登录的安全机制,例如当登录不成功次数过多时,会自动退出等。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1