首页 > 解决方案 > 检查用户名是否已在 ArrayList 中注册

问题描述

我有这个 JFrame 程序,它只通过用户的全名、用户名、城市、年龄来注册用户。我检查了方法中的文本字段。如果您按下注册 JButton,它会检查您是否输入了正确的信息,然后在数组列表中创建一个新用户。

我需要添加一个检查,当我按下注册按钮时会告诉我用户名是否存在。在区域列表中创建新用户之前,我尝试在我的方法中创建一个 if 语句来检查我的文本字段,但它只是被忽略了。我试图在注册按钮的方法之前做出 if 语句,但仍然没有。我将使用我的方法粘贴下面的 Action Listener 代码。

编辑:发布我使用的方法更清楚。

public void fieldChecks()
    {
        if(fullnameField.getText().length() < 6)
        {
            Helpers.showError("Name must have at least 7 characters");
            return;
        }

        if(usernameField.getText().length() < 4)
        {

                Helpers.showError("Username must have at least 4 characters!");
            return;
        }

        if(cityField.getText().length() < 5)
        {
            Helpers.showError("City must have at least 5 characters");
            return;
        }

        if(passwordField.getText().length() < 8)
        {
            Helpers.showError("Name must have at least 8 characters");
            return;
        }

        if(ageField.getText().length() == 0)
        {
            Helpers.showError("Age is a required field!");
            return;
        }
        //check if our boolean is true or false from Helpers class
        if(Helpers.ageCheck(ageField.getText()) == false)
        {
            Helpers.showError("Age must be a whole number!");
            return;
        }

        String fullname = fullnameField.getText();
        String username = usernameField.getText();
        String city = cityField.getText();
        String password = passwordField.getText();
        int age = Integer.parseInt(ageField.getText());
        String sex = " ";
        //check which radio button is selected
        if(maleOption.isSelected())
        {
            sex = "Male";
        }else
            {
                sex = "Female";
            }




            //we have to create a user now by having the above new vars in the user brackets in order of our Class constructor
        User myUser = new User(fullname,username, city, password, sex, age);

        //create the default add function for our arraylist that we added in the vars above
        myUsers.add(myUser);
        Helpers.showConfirmation("User added!");

    }

@Override
    public void actionPerformed(ActionEvent e) {

        if(e.getSource() == registerButton)
        {
            //this method checks if my text fields have more 
            //than X charactes typed before it creates a user.
            // This method also adds the new user to my array list 
         //after the checks are complete
            fieldChecks();
        }
        else if(e.getSource() == printButton)
        {
            printUser();
        }
        else if(e.getSource() == searchButton)
        {
            searchUsers();
        }

标签: javaarraylist

解决方案


后:

if(usernameField.getText().length() < 4)
    {
        Helpers.showError("Username must have at least 4 characters!");
        return;
    }

我将验证该用户名是否使用以下代码

if(myUsers.size() > 0)
    {
       for(User user : myUsers)
          {
              if(usernameField.getText() == user.username)
                {
                    Helpers.showError("This username is taken");
                    return;
                }
          }
    }

推荐阅读