如何在 java 中存储用户名和密码并在不同的 class 中调用它们
How to store usernames and passwords in java and call them in a different class
我有 2 个 classes:一个创建名为 ToolKit 的 JPane 登录屏幕,另一个 linked 到名为 Register 的 Toolkit。当有人打开我的应用程序时,他们会注册他们的信息并将其保存到用户名和密码以及确认密码等值中。我想弄清楚如何存储密码和用户名,并将用户名与用户输入的注册密码相匹配。然后我希望能够使用我的工具包 class 中存储的用户名和密码来允许访问登录。
我试过数组 class 将我的用户名和密码存储在单独的数组字段中并尝试 link 它们,但这似乎不起作用。我正在尝试查看是否应该使用 for 循环来创建 switch 语句或其他随机语句。
工具包文件:
这是登录按钮:
JButton btnLogin = new JButton("Login");
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
当您按下登录时,它会清除文本字段:
String password = txtPassword.getText();
String username = txtUsername.getText();
//Dont forget condtion if statements. Like breaking down capitalization
我想将 "King" 设置为用户在注册表 class 中存储的用户名,并对密码执行相同的操作。
if(password.contains("King") && username.contains("one")) {
txtPassword.setText(null);
txtUsername.setText(null);
}
else
{
只是一个无效的登录消息,稍后将更改为具有更多无效登录条件。
JOptionPane.showMessageDialog(null, "Invalid Login Details Have you Registered Yet?", "Login Error", JOptionPane.ERROR_MESSAGE);
txtPassword.setText(null);
txtUsername.setText(null);
注册Class:
这是第二个 class 并且有一个我变成按钮的 Jlabel。
JLabel Register = new JLabel("Register");
Register.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
Register.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
点击“注册”后会发生一些事情。
截至目前,当注册标签被推送时,它会将用户输入的内容存储到变量名称和密码中。
我如何获取这些值并将它们 link 合并在一起,然后存储它们并将它们移动到另一个 class?
String name = userName.getText();
String password = passwordField.getText();
我希望当应用程序打开时,用户可以使用不同的用户名和密码创建多个帐户,这些帐户将保持 link 在一起,并且能够转到工具包 class 并登录使用他们在注册表中创建的密码和用户名 Class.
你有几个选择,
- 使它们成为
static public
变量。 (Reference)
- 为 'user' 创建一个单例,其中包含名称和密码。这样,下次访问它时,您将获得旧值。 (Reference 1, Reference 2, Reference 3)
- 将值存储在文件(或)本地数据库中,并在需要时从中检索。 (Reference 1, Reference 2)
我有 2 个 classes:一个创建名为 ToolKit 的 JPane 登录屏幕,另一个 linked 到名为 Register 的 Toolkit。当有人打开我的应用程序时,他们会注册他们的信息并将其保存到用户名和密码以及确认密码等值中。我想弄清楚如何存储密码和用户名,并将用户名与用户输入的注册密码相匹配。然后我希望能够使用我的工具包 class 中存储的用户名和密码来允许访问登录。
我试过数组 class 将我的用户名和密码存储在单独的数组字段中并尝试 link 它们,但这似乎不起作用。我正在尝试查看是否应该使用 for 循环来创建 switch 语句或其他随机语句。
工具包文件:
这是登录按钮:
JButton btnLogin = new JButton("Login");
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
当您按下登录时,它会清除文本字段:
String password = txtPassword.getText();
String username = txtUsername.getText();
//Dont forget condtion if statements. Like breaking down capitalization
我想将 "King" 设置为用户在注册表 class 中存储的用户名,并对密码执行相同的操作。
if(password.contains("King") && username.contains("one")) {
txtPassword.setText(null);
txtUsername.setText(null);
}
else
{
只是一个无效的登录消息,稍后将更改为具有更多无效登录条件。
JOptionPane.showMessageDialog(null, "Invalid Login Details Have you Registered Yet?", "Login Error", JOptionPane.ERROR_MESSAGE);
txtPassword.setText(null);
txtUsername.setText(null);
注册Class: 这是第二个 class 并且有一个我变成按钮的 Jlabel。
JLabel Register = new JLabel("Register");
Register.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
Register.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
点击“注册”后会发生一些事情。
截至目前,当注册标签被推送时,它会将用户输入的内容存储到变量名称和密码中。
我如何获取这些值并将它们 link 合并在一起,然后存储它们并将它们移动到另一个 class?
String name = userName.getText();
String password = passwordField.getText();
我希望当应用程序打开时,用户可以使用不同的用户名和密码创建多个帐户,这些帐户将保持 link 在一起,并且能够转到工具包 class 并登录使用他们在注册表中创建的密码和用户名 Class.
你有几个选择,
- 使它们成为
static public
变量。 (Reference) - 为 'user' 创建一个单例,其中包含名称和密码。这样,下次访问它时,您将获得旧值。 (Reference 1, Reference 2, Reference 3)
- 将值存储在文件(或)本地数据库中,并在需要时从中检索。 (Reference 1, Reference 2)