Ваш код будет go через каждого сотрудника, даже если он введет правильное имя входа, он продолжает искать другого сотрудника, который нужно сопоставить, вам нужно заставить его напечатать Имя пользователя или пароль неверны! после l oop завершен, и он не нашел соответствия, вы могли бы сделать это, добавив логическое значение перед l oop и, если был найден правильный пользователь, измените логическое значение, чтобы не печатать имя пользователя или неверный пароль! , простой пример:
String username = FieldUsername.getText();
String password = FieldPassword.getText();
Iterator<Employee> i = Employees.iterator();
boolean isCorrectLoginFound = false // Checks for correct login
while (i.hasNext()) {
Employee o = i.next();
if (o.getName().equals(username) && o.getPassword().equals(password)) {
isCorrectLoginFound = true;
if (o.getJob().equals("President")) {
JOptionPane.showMessageDialog(null, "Welcome");
UserPresident uno = new UserPresident();
uno.show();
this.dispose();
break;
} else if (o.getJob().equals("Manager")) {
if (o.getArea().equals("Production")) {
JOptionPane.showMessageDialog(null, "Welcome");
UserProductionManager uno = new UserProductionManager();
uno.show();
break;
}else if(o.getArea().equals("Marketing")){
JOptionPane.showMessageDialog(null, "Welcome");
UserMarketingManager uno = new UserMarketingManager();
uno.show();
break;
}else{
JOptionPane.showMessageDialog(null, "Welcome");
UserHRManager uno = new UserHRManager();
uno.show();
break;
}
} else {
JOptionPane.showMessageDialog(null, "Bienvenido");
UserEmployee uno = new UserEmployee();
uno.show();
break;
}
}
}
if (!isCorrectLoginFound) {
JOptionPane.showMessageDialog(null, "Username or password is incorrect!");
FieldUsername.setText("");
FieldPassword.setText("");
}