当前位置: 首页 > 知识库问答 >
问题:

如何循环查看两个属性是否匹配?

颜新
2023-03-14

我有一个登录系统,可以循环浏览所有客户,查看特定用户名和密码是否匹配,但它似乎不起作用。所有的顾客都在一份名单上。我最初引用了这篇文章,但它仍然不起作用。任何帮助都将不胜感激。非常感谢。

其他信息

TextField username,password;
Customer checkCustomer;
ObservableList<Customer> customers;

customers = FXCollections.observableArrayList();

登录系统(GUI)

if(t.getSource() == logIn){
            //Owner login


            if(username.getText().equals("admin") && password.getText().equals("admin")){
                System.out.println("success, owner logged in");
                window.setScene(primaryOwner);
            }
            else {

                  if(findRegisteredCustomer(username.getText(),password.getText()) != null){
                      System.out.println("Success, customer logged in");
                      if(checkCustomer.getPoints() < 1000){
                        status = "Silver";
                       }
                      else if(checkCustomer.getPoints() > 1000){
                        status = "Gold";
                       }
                      welcome.setText("Welcome " + checkCustomer.getUsername() + ". " + "You have " + checkCustomer.getPoints() + " points. " + "Your status is " + status + ".");
                      System.out.println("success, " + checkCustomer.getUsername() + " has logged in");
                      window.setScene(customerStartScreen);
                  }
                  else {
                      System.out.println("Username: " + username.getText() + ", Password: " + password.getText());
                      System.out.println("failed, incorrect login details");
                  }
            }
        }

查找客户是否已注册

public Customer findRegisteredCustomer(String username, String password){
          for(Customer customerTest: customers){
              if(customerTest.getUsername().equals(username) && customerTest.getPassword().equals(password)){
                      System.out.println("Registered user");
                      checkCustomer = customerTest;
                      return customerTest;
                  }
              return null;
          }
          return null;
}

客户类别

public class Customer extends User {
    private int points;
    
    public Customer(String username, String password){
        super(username,password);
        points = 0;
        
    }
    
    public Customer(String username, String password, int points){
        super(username,password);
        this.points = points;
    }

    public int getPoints() {
        return points;
    }

    public void setPoints(int points) {
        this.points = points;
    }
    
}

共有1个答案

公西俊德
2023-03-14

如果在if块之后返回null,请删除findRegisterdCustomer方法中的第一个返回null,这样就可以了。此外,您可能还想研究散列、equals方法和默认密码,以及它们可能存在的问题。

 类似资料:
  • 我一直在检查重叠时间。我的日历实现允许循环或环绕时间(因此在结束时间之后有开始时间是可能的) 例如:,, 我在网上找到的一些答案,当结束时间严格地晚于开始时间时起作用。我该怎么解决这个?我正在使用这个StackOverflow解决方案,但它不能完全工作:确定两个日期范围是否重叠 在这张图片中,两个时间范围重叠,但我的植入没有正确地识别它:重叠的时间 这里是调试输出,它应该返回True,但不是:de

  • 在AWS secretsmanager中创建了一个秘密,使用lambda函数启用了自动旋转。当我第一次从cli触发旋转时,它还没有完成。这是手动在aws控制台中更新secret时secret的初始状态。 现在我从aws cli触发了旋转 Cloudwatch日志在此创建处停止。ecret:成功地为ARN放置secret ARN:aws:secretsmanager:xxxxxxx..看起来只调用c

  • 问题内容: 我已经使用Java已有一段时间了,但是我对循环的教育还是有点不足。我知道如何创建存在于Java中的每个循环以及如何打破循环。但是,最近我想到了: 假设我有两个嵌套循环。我可以只使用一条语句来打破两个循环吗? 这是我到目前为止所拥有的。 有没有办法做到这一点? 问题答案: 在Java中,您可以使用标签来指定要中断/继续的循环:

  • 我首先想到的是,一个property_a不能绑定到另一个property_b,这个property_b绑定到property_a或者依赖于属性,这些属性绑定到property_a。对吧?

  • 问题内容: 我的代码需要读取所有文件。目前,我正在使用以下代码: 但是,如果文件当前为空,则为null,这是不好的。有没有一个具有方法或等同? 问题答案: 您尝试执行的标准模式是:

  • 我正在和,的速度太快了。我要它慢下来。我确实尝试了许多其他的代码和方法,但没有一个对我有效。 这是我发现的 如何使RecyclerView平滑滚动? 这篇文章建议在和中不应该有I/O操作,并且在执行这些方法时花费太多时间会造成延迟。但是,我没有I/O操作,也没有太多的代码。 注意我正在尝试显示来自外部存储的图像。所以,在第一次加载时,glide将创建缩略图来缓存,然后在第二次加载时将不会有更大尺寸