“商苑面馆:用户登录界面功能实现”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
(创建页面,内容为“ 任务描述:用户登录界面功能实现 完善用户登录界面功能: 登录成功时,弹出成功界面,如图: 失败时,弹出失败界面,…”)
 
第1行: 第1行:
任务描述:用户登录界面功能实现
+
==任务描述==
 
完善用户登录界面功能:
 
完善用户登录界面功能:
 +
 
登录成功时,弹出成功界面,如图:
 
登录成功时,弹出成功界面,如图:
  
 
失败时,弹出失败界面,如图:
 
失败时,弹出失败界面,如图:
  
8.2.2  任务实现
+
==任务实现==
8.1.2.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>
 +
 
 
第四步:为登录按钮添加点击事件。
 
第四步:为登录按钮添加点击事件。
 +
 
业务逻辑如下:
 
业务逻辑如下:
1)用户点击登录按钮时,获取用户在界面上填写的账号和密码。
+
 
2)通过用户模拟数据访问类UserDaoTesting验证登录有效性。
+
#用户点击登录按钮时,获取用户在界面上填写的账号和密码。
3)登陆成功,通过提示框控件JOptionPane显示提示信息:登录成功。
+
#通过用户模拟数据访问类UserDaoTesting验证登录有效性。
4)登录失败,通过提示框控件JOptionPane显示提示信息:登录账号或密码不正确
+
#登陆成功,通过提示框控件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>
第六步:运行并测试程序。
+
 
8.1.2.2  程序代码
+
第六步:运行并测试程序。
1.UserDao.java
+
 
public interface UserDao {
+
==程序代码==
 +
===UserDao.java===
 +
<nowiki>public interface UserDao {
 
public User login(String uid,String pwd);
 
public User login(String uid,String pwd);
}
+
}</nowiki>
2.UserDaoTesting.java
+
===UserDaoTesting.java===
public class UserDaoTesting implements UserDao{
+
<nowiki>public class UserDaoTesting implements UserDao{
  
 
@Override
 
@Override
第79行: 第94行:
 
}
 
}
  
}
+
}</nowiki>
3.LogonForm.java
+
===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;
	}

}

第四步:为登录按钮添加点击事件。

业务逻辑如下:

  1. 用户点击登录按钮时,获取用户在界面上填写的账号和密码。
  2. 通过用户模拟数据访问类UserDaoTesting验证登录有效性。
  3. 登陆成功,通过提示框控件JOptionPane显示提示信息:登录成功。
  4. 登录失败,通过提示框控件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(); } }