Как мне разработать этот интерфейс входа? - PullRequest
0 голосов
/ 31 января 2020

У меня есть список (Сотрудники) сотрудников (объект класса Employee), и я пытаюсь выполнить итерацию по этому списку, чтобы я мог проверить введенную информацию, в противном случае выдается сообщение об ошибке, Он действительно проверяет информацию и выполняет вход при наличии нужной информации. но это вызывает ошибку у всех других сотрудников, проверенных в списке.

    String username = FieldUsername.getText();
    String password = FieldPassword.getText();

    Iterator<Employee> i = Employees.iterator();

    while (i.hasNext()) {
        Employee o = i.next();

        if (o.getName().equals(username) & o.getPassword().equals(password)) {
            if (o.getJob().equals("President")) {
                JOptionPane.showMessageDialog(null, "Welcome");
                UserPresident uno = new UserPresident();
                uno.show();
                this.dispose();
            } else if (o.getJob().equals("Manager")) {
                if (o.getArea().equals("Production")) {
                    JOptionPane.showMessageDialog(null, "Welcome");
                    UserProductionManager uno = new UserProductionManager();
                    uno.show();
                }else if(o.getArea().equals("Marketing")){
                    JOptionPane.showMessageDialog(null, "Welcome");
                    UserMarketingManager uno = new UserMarketingManager();
                    uno.show();
                }else{
                    JOptionPane.showMessageDialog(null, "Welcome");
                    UserHRManager uno = new UserHRManager();
                    uno.show();
                }
            } else {
                JOptionPane.showMessageDialog(null, "Bienvenido");
                UserEmployee uno = new UserEmployee();
                uno.show();
            }
        } else {
            JOptionPane.showMessageDialog(null, "Username or password is incorrect!");
            FieldUsername.setText("");
            FieldPassword.setText("");
        }
    }

1 Ответ

0 голосов
/ 01 февраля 2020

Ваш код будет 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("");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...