JavaFX setText()NullPointerException,即使我已经设置了控制器和fxml标记

JavaFX setText()NullPointerException,即使我已经设置了控制器和fxml标记,java,javafx,null,fxml,Java,Javafx,Null,Fxml,切换到新场景时,我正在尝试将数据填充到新场景中。用户登录(这是有效的,因为如果我向他发送字符串(),我就得到了所需的一切)。例如,当我在JFXTextField上调用setText()时,它不起作用 这是我的控制器。切换到此场景时调用Updatehome public class DashboardController { @FXML JFXTextField txtGastDashboardSuchfeld; @FXML Label lblGastDashboardNachn

切换到新场景时,我正在尝试将数据填充到新场景中。用户登录(这是有效的,因为如果我向他发送字符串(),我就得到了所需的一切)。例如,当我在JFXTextField上调用setText()时,它不起作用

这是我的控制器。切换到此场景时调用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());
    }

}
在我的主要课程中,我有这个(正在加载场景)


哪一行引发空指针异常?您可以添加fxml文件吗?鉴于您发布的代码段,您可能还需要检查正在加载的fxml文件是否是您认为的文件。。。您确定没有将控制器设置为错误FXML文件的
仪表板控制器吗?@James\u D line
txtGastHomeVorname.setText(Main.user.getVorname())updateHome()
中的code>正在引发异常@HamishD这是我正在加载的FXML文件。仪表板控制器仅在我切换到仪表板时设置。奇怪的是这一行
lblGastDashboardNachnameVorname.setText(Main.user.getVollername())可以正常工作。其他人都没有。我不想发布太多的代码来保持它的整洁,但是如果您需要它,请告诉我。好的,在仔细查看我的fxml文件后,我找到了空对象的原因。我使用场景生成器创建了这些场景,并在
fx:id
下设置了正确的名称。然而,当我检查文件时,它们却无处可寻。如果我手动添加这些标记,一切都会开始工作。所以我的问题是为什么scenebuilder不保存fx:id
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));