“商苑面馆:用户登录界面功能实现”的版本间的差异
(创建页面,内容为“ 任务描述:用户登录界面功能实现 完善用户登录界面功能: 登录成功时,弹出成功界面,如图: 失败时,弹出失败界面,…”) |
|||
第1行: | 第1行: | ||
− | + | ==任务描述== | |
完善用户登录界面功能: | 完善用户登录界面功能: | ||
+ | |||
登录成功时,弹出成功界面,如图: | 登录成功时,弹出成功界面,如图: | ||
失败时,弹出失败界面,如图: | 失败时,弹出失败界面,如图: | ||
− | + | ==任务实现== | |
− | + | ||
第一步:启动Eclipse,导入工程Project0801。 | 第一步:启动Eclipse,导入工程Project0801。 | ||
+ | |||
第二步:创建User表数据访问接口,在接口中定义登录有效性验证函数,如下图所示方法: | 第二步:创建User表数据访问接口,在接口中定义登录有效性验证函数,如下图所示方法: | ||
具体代码: | 具体代码: | ||
− | public interface UserDao { | + | |
+ | <nowiki>public interface UserDao { | ||
public User login(String uid,String pwd); | public User login(String uid,String pwd); | ||
− | } | + | }</nowiki> |
+ | |||
第三步:创建User数据访问类,实现UserDao接口。 | 第三步:创建User数据访问类,实现UserDao接口。 | ||
− | public class UserDaoTesting implements UserDao{ | + | |
+ | <nowiki>public class UserDaoTesting implements UserDao{ | ||
@Override | @Override | ||
第28行: | 第33行: | ||
} | } | ||
− | } | + | }</nowiki> |
+ | |||
第四步:为登录按钮添加点击事件。 | 第四步:为登录按钮添加点击事件。 | ||
+ | |||
业务逻辑如下: | 业务逻辑如下: | ||
− | + | ||
− | + | #用户点击登录按钮时,获取用户在界面上填写的账号和密码。 | |
− | + | #通过用户模拟数据访问类UserDaoTesting验证登录有效性。 | |
− | + | #登陆成功,通过提示框控件JOptionPane显示提示信息:登录成功。 | |
+ | #登录失败,通过提示框控件JOptionPane显示提示信息:登录账号或密码不正确 | ||
+ | |||
具体代码: | 具体代码: | ||
− | btnLogon.addActionListener(e -> { | + | |
+ | <nowiki>btnLogon.addActionListener(e -> { | ||
// 获取用户输入的账号和密码 | // 获取用户输入的账号和密码 | ||
String uid = txtUserID.getText(); | String uid = txtUserID.getText(); | ||
第51行: | 第61行: | ||
} else | } else | ||
JOptionPane.showMessageDialog(this, "登陆成功", "信息", JOptionPane.INFORMATION_MESSAGE); | JOptionPane.showMessageDialog(this, "登陆成功", "信息", JOptionPane.INFORMATION_MESSAGE); | ||
− | }); | + | });</nowiki> |
+ | |||
第五步:为重置按钮添加事件。 | 第五步:为重置按钮添加事件。 | ||
+ | |||
清空用户名和密码,用户名文本框获得焦点,具体代码如下: | 清空用户名和密码,用户名文本框获得焦点,具体代码如下: | ||
− | btnReset.addActionListener(e->{ | + | |
+ | <nowiki>btnReset.addActionListener(e->{ | ||
txtUserID.setText(""); | txtUserID.setText(""); | ||
txtPassword.setText(""); | txtPassword.setText(""); | ||
txtUserID.requestFocus(); | txtUserID.requestFocus(); | ||
− | }); | + | });</nowiki> |
− | + | ||
− | + | 第六步:运行并测试程序。 | |
− | + | ||
− | public interface UserDao { | + | ==程序代码== |
+ | ===UserDao.java=== | ||
+ | <nowiki>public interface UserDao { | ||
public User login(String uid,String pwd); | public User login(String uid,String pwd); | ||
− | } | + | }</nowiki> |
− | + | ===UserDaoTesting.java=== | |
− | public class UserDaoTesting implements UserDao{ | + | <nowiki>public class UserDaoTesting implements UserDao{ |
@Override | @Override | ||
第79行: | 第94行: | ||
} | } | ||
− | } | + | }</nowiki> |
− | + | ===LogonForm.java=== | |
− | public class LogonForm extends JFrame { | + | public class LogonForm extends JFrame { |
private JLabel lblUserID;// “登录账号”标签 | private JLabel lblUserID;// “登录账号”标签 | ||
private JLabel lblPassword;// “登录密码”标签 | private JLabel lblPassword;// “登录密码”标签 |
2018年5月23日 (三) 07:47的版本
任务描述
完善用户登录界面功能:
登录成功时,弹出成功界面,如图:
失败时,弹出失败界面,如图:
任务实现
第一步:启动Eclipse,导入工程Project0801。
第二步:创建User表数据访问接口,在接口中定义登录有效性验证函数,如下图所示方法:
具体代码:
public interface UserDao { public User login(String uid,String pwd); }
第三步:创建User数据访问类,实现UserDao接口。
public class UserDaoTesting implements UserDao{ @Override public User login(String uid, String pwd) { // 获取用户测试数据集 List<User> users=UserDataSet.users; //循环判断用户输入的账号和密码在测试集合中是否存在 for(User user:users) if(user.getId().equalsIgnoreCase(uid)&&user.getPassword().equalsIgnoreCase(pwd)) return user; return null; } }
第四步:为登录按钮添加点击事件。
业务逻辑如下:
- 用户点击登录按钮时,获取用户在界面上填写的账号和密码。
- 通过用户模拟数据访问类UserDaoTesting验证登录有效性。
- 登陆成功,通过提示框控件JOptionPane显示提示信息:登录成功。
- 登录失败,通过提示框控件JOptionPane显示提示信息:登录账号或密码不正确
具体代码:
btnLogon.addActionListener(e -> { // 获取用户输入的账号和密码 String uid = txtUserID.getText(); String pwd = new String(txtPassword.getPassword()); // 判断用户输入的账号和密码是否存在 UserDaoTesting udt = new UserDaoTesting(); User user = udt.login(uid, pwd); // 用户编号不存在 if (user == null) { JOptionPane.showMessageDialog(this, "登陆账号或密码不正确", "警告信息", JOptionPane.WARNING_MESSAGE); // 增加用户体验,选中文本框中的字,并获得焦点 txtUserID.requestFocus(); txtUserID.selectAll(); } else JOptionPane.showMessageDialog(this, "登陆成功", "信息", JOptionPane.INFORMATION_MESSAGE); });
第五步:为重置按钮添加事件。
清空用户名和密码,用户名文本框获得焦点,具体代码如下:
btnReset.addActionListener(e->{ txtUserID.setText(""); txtPassword.setText(""); txtUserID.requestFocus(); });
第六步:运行并测试程序。
程序代码
UserDao.java
public interface UserDao { public User login(String uid,String pwd); }
UserDaoTesting.java
public class UserDaoTesting implements UserDao{ @Override public User login(String uid, String pwd) { // 获取用户测试数据集 List<User> users=UserDataSet.users; //循环判断用户输入的账号和密码在测试集合中是否存在 for(User user:users) if(user.getId().equalsIgnoreCase(uid)&&user.getPassword().equalsIgnoreCase(pwd)) return user; return null; } }
LogonForm.java
public class LogonForm extends JFrame {
private JLabel lblUserID;// “登录账号”标签 private JLabel lblPassword;// “登录密码”标签 private JTextField txtUserID;// “登录账号”文本框 private JPasswordField txtPassword;// 密码框 private JButton btnLogon;// 登录按钮 private JButton btnReset;// 重置按钮
public LogonForm() { // 控件初始化 lblUserID = new JLabel("用户登录", JLabel.CENTER); lblPassword = new JLabel("登录密码", JLabel.CENTER); txtUserID = new JTextField(16); txtPassword = new JPasswordField(16); btnLogon = new JButton("登录"); btnLogon.addActionListener(e -> { // 获取用户输入的账号和密码 String uid = txtUserID.getText(); String pwd = new String(txtPassword.getPassword()); // 判断用户输入的账号和密码是否存在 UserDaoTesting udt = new UserDaoTesting(); User user = udt.login(uid, pwd); // 用户编号不存在 if (user == null) { JOptionPane.showMessageDialog(this, "登陆账号或密码不正确", "警告信息", JOptionPane.WARNING_MESSAGE); // 增加用户体验,选中文本框中的字,并获得焦点 txtUserID.requestFocus(); txtUserID.selectAll(); } else JOptionPane.showMessageDialog(this, "登陆成功", "信息", JOptionPane.INFORMATION_MESSAGE); }); btnReset = new JButton("重置"); btnReset.addActionListener(e->{ txtUserID.setText(""); txtPassword.setText(""); txtUserID.requestFocus(); }); // 设置控件布局,在窗口中添加用户登录、用户密码控件 JPanel centerPane = new JPanel(); centerPane.setLayout(new GridLayout(2, 2)); centerPane.add(lblUserID); centerPane.add(txtUserID); centerPane.add(lblPassword); centerPane.add(txtPassword); this.getContentPane().add(centerPane, BorderLayout.CENTER); // 添加登录按钮和重置按钮 JPanel southPane = new JPanel(); southPane.setLayout(new FlowLayout()); southPane.add(btnLogon); southPane.add(btnReset); this.getContentPane().add(southPane, BorderLayout.SOUTH);
pack(); this.setTitle("电商购物平台-登录"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); }
public static void main(String[] args) { LogonForm logon = new LogonForm(); } }