Как правильно проверить информацию об учетной записи из текстового поля с помощью сканера - PullRequest
0 голосов
/ 28 февраля 2019

Итак, в этом проекте мы с моими партнерами создали графический интерфейс.Мне нужно подтвердить адрес электронной почты и пароль, проверив текстовый файл с именем e.txt. Вход в систему GUI Я просто хотел знать, является ли приведенный ниже код в некотором смысле.После того, как я попытался запустить его, я столкнулся с некоторыми ошибками.Другое изменение, которое я сделал, я сделал идентификаторы текстового поля.У нас там были текстовые поля, там просто не было идентификаторов.Теперь, когда я сделал их идентификаторы и сохранил изменения, проблемы начались.Программа больше не позволяет всплывать графическому интерфейсу, так как я сохранил изменения в файле login.fxml.Синтаксис мудрый, что-то не так с функцией validateEmailAndPassword?

 package cais240courseproj;

    public class CAIS240CourseProj extends Application {

        @Override
        public void start(Stage stage) throws Exception {



//netbeans has directed me to this as the problem that isn't allowing 
      //the program to run
            Parent root = FXMLLoader.load(getClass().getResource("Login.fxml"));

            Scene scene = new Scene(root);

            stage.setScene(scene);
            stage.show();
            stage.setResizable(false);
        }

        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            launch(args);
        }

    }

public class FXMLDocumentController implements Initializable {
    boolean validAccount;

    @FXML
    private Label label;

    @FXML
    private ImageView iv;

    @FXML
    private AnchorPane rootLogin;

    @FXML 
    private Button registerBtn;

    @FXML 
    private Button EmailTextField;

    @FXML 
    private Button passwordTextField;

    @FXML
    private void handleButtonAction(ActionEvent event) {
        System.out.println("You clicked me!");
        label.setText("Hello World!");
    }

    @FXML
    private void loadRegister(ActionEvent event) throws IOException {

       Parent registerPane = FXMLLoader.load(getClass().getResource("Register.fxml"));

       //Make sure the textfields aren't empty
       if( (!EmailTextField.getText().isEmpty() ) && ( !passwordTextField.getText().isEmpty() ) )

           //take the user input (email and password) and compare them with registered
           //account info
           validatePassAndEmail(EmailTextField.getText(), passwordTextField.getText());   

       Scene tableViewScene = new Scene(registerPane);

       Stage window = (Stage)((Node)event.getSource()).getScene().getWindow();
       window.setScene(tableViewScene);
       window.show();
    }

    private void validatePassAndEmail(String email, String password) throws IOException{   
       boolean sameEmail = false, samePassword = false; 

       Scanner scan = new Scanner(new File("e.txt"));

       //comparing and checking to see if the user input is a registered account
       while( (sameEmail == false) && (samePassword == false) ){
           while (scan.hasNextLine()) {
               if( sameEmail == false && email.equals(scan.next()))
                   sameEmail = true;
               if(samePassword == false && password.equals(scan.next()))
                   samePassword = true;

               //if the scanner has reached the end with no matches
               if(scan.next().equals(""))
                   break; 
           }
       }
       if( sameEmail == true && samePassword == true )
           validAccount = true;
    }

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
    }    
}

1 Ответ

0 голосов
/ 28 февраля 2019

Должны ли EmailTextField и passwordTextField иметь тип TextField?У узла кнопки нет метода .getText()

@FXML 
private TextField EmailTextField;

@FXML 
private TextField passwordTextField;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...