Контроллер не может быть приведён к приложению. Другой Контроллер - PullRequest
0 голосов
/ 10 октября 2019

Здравствуйте, у меня есть три контроллера: LoginController->HomeController->UserController

Я передаю некоторые переменные следующим образом:

in LoginController Я получил это:

  private HomeScreenController home;



    public HomeScreenController getHome() {
    return home;
}



public void setHome(HomeScreenController home) {
    this.home = home;
}

inТо же самое LoginController Я загружаю Fxmldocument, который ссылается на HomeScreenController Как это:

----Bunch of code here---

          if(!usuarioadmin.equals(fusuario.getText().toString())&&pass.equals(fcontrasena.getText().toString().trim())&&usus.equals(fusuario.getText().toString().trim())  ) {
                 try {
                        Stage homescreen=new Stage();
                        FXMLLoader carga = new FXMLLoader(getClass().getResource("HomeScreen.fxml"));
                        Parent StackPane =(Parent) carga.load();
                        /*HomeScreenController control = carga.<HomeScreenController>getController();
                        control.deshabilitarespuesta();*/

                        LoginController loginn = carga.<LoginController>getController();
                        String a=loginn.fusuario.getText();
                        String b=loginn.fcontrasena.getText();

                        carga.setController(home);
                        home.validauser.setText(a);
                        home.validapass.setText(b);

                        UserController user= carga.<UserController>getController();


                        if(!a.equals("rikardoroa")&& !b.equals("@r@gorn")) {
                            user.registrosuser.setDisable(true);
                        }


                        Scene scene = new Scene(StackPane);
                        scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
                        homescreen.setScene(scene);
                        homescreen.setTitle("HomeScreen");
                        Stage login=(Stage)fusuario.getScene().getWindow();
                        login.hide();
                        homescreen.show();


                 }catch(Exception e) {
                     Logger.getLogger(Application.class.getName()).log(Level.SEVERE, null, e);
                 }
             }

в HomeController Я получил это:

public TextField validauser;


public TextField validapass;

в UserController iесть это:

 @FXML public JFXButton registrosuser;

проблема в том, что когда я ввожу пароль и пользователя из локальной учетной записи (не администратор), я получил эту ошибку:

java.lang.ClassCastException: application.HomeScreenController cannot be cast to application.LoginController

консоль показывает мне эту строку:

 LoginController loginn = carga.<LoginController>getController();

Несмотря на то, что на трех этапах StackPane имеет статус Parents, в чем моя ошибка? любая ориентация. С уважением.

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