java - 检查用户名是否已在 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();
}
解决方案
后:
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;
}
}
}
推荐阅读
- c++ - 为什么我不能在 C++ 中使用带有转发引用的特征?
- node.js - NodeJS如何仅在工作时间执行功能?
- java - jenkins用户调用脚本时如何退出远程服务器
- c# - 在 Ado.net 的情况下,DataAccess 层返回域对象?
- bash - 如何输出字符串中第 n 个位置的数字?
- arrays - Kotlin:字符串到数组到键值
- multithreading - 只能在一个线程中访问成员变量,不能在类实例的线程中访问
- google-cloud-platform - 如何从 Cloud Datastore 获取 Google Composer 工作流的配置?
- android - Android 通知:使用哪些标签/ID 对来确保显示所有通知?
- python - 将 wstring 指针传递给用 C++ 编写的第 3 方 SO