JavaFX setText () NullPointerException, хотя я установил теги controller и fxml - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь добавить данные в мою новую сцену, когда я переключаюсь на нее.Пользователь входит в систему (что работает, потому что, если я запускаю его, я получаю все, что мне нужно).Когда я вызываю setText () для JFXTextField, например, он не работает.

Это мой контроллер.Updatehome вызывается, когда я переключаюсь на эту сцену

public class DashboardController {

    @FXML JFXTextField txtGastDashboardSuchfeld;
    @FXML Label lblGastDashboardNachnameVorname;
    @FXML JFXTextField txtGastHomeVorname;
    @FXML JFXTextField txtGastHomeNachname;
    @FXML JFXTextField txtGastHomeSteuernummer;
    @FXML JFXTextField txtGastHomeAusweisnummer;
    @FXML JFXTextField txtGastHomeEmail;
    @FXML JFXPasswordField pwfGastHomePasswort;


    public void updateHome() {
        if(Main.user == null) {
            Controller.errorMessage("Fataler Fehler", "User konnte nicht aufgelöst werden!");
            return;
        }
        System.out.println(Main.user.toString());

        lblGastDashboardNachnameVorname.setText(Main.user.getVollername());
        txtGastHomeVorname.setText(Main.user.getVorname());
        txtGastHomeNachname.setText(Main.user.getNachname());
        txtGastHomeSteuernummer.setText(Main.user.getSteuernummer());
        txtGastHomeAusweisnummer.setText(Main.user.getAusweisnummer());
        txtGastHomeEmail.setText(Main.user.getEmailAdresse());
        pwfGastHomePasswort.setText(Main.user.getPasswort().toString());
    }

}

В моем основном классе у меня есть это (загружаются сцены)

public static Controller controller;
public static DashboardController dashboardController;

public static Person user = null;

public static Stage window;

public static TreeMap<String, Scene> scenes = new TreeMap<>();
public static ArrayList<Scene> history = new ArrayList<>();

@Override
public void start(Stage primaryStage) {     
    window = primaryStage;
    controller = new Controller();
    dashboardController = new DashboardController();
    loadScenes();
}

Это фрагмент из метода, который загружаетсцены в мою древовидную карту

FXMLLoader loader = new FXMLLoader(getClass().getResource(fxmlPath));
        try {
            if(sceneName.contains("dashboard")) {
                loader.setController(dashboardController);
            } else
                loader.setController(controller);

            Parent parent = (Parent)loader.load();

            scenes.put(sceneName, new Scene(parent));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...