Если вы также используете свой основной класс в качестве контроллера, вам сначала нужно получить контроллер, созданный при вызове FXMLLoader.load, поскольку он создает новый экземпляр этого, я почти уверен (но на самом деле выВ любом случае, я бы никогда этого не сделал, поскольку James_D сказал, что вы должны создать отдельный класс Controller).
В качестве быстрого исправления для этого кода вы можете создать метод с именем initialize()
, который будет вызываться (если этот точный метод вызывается именно так, как существует) при создании сцены до ее отображения.Этот будет вызван в правильном экземпляре контроллера наверняка.Чтобы иметь возможность передавать параметры в контроллер сцены, вам нужно получить контроллер из FXMLLoader и затем вызвать метод в этом контроллере, который принимает параметры, поскольку для этого не существует предопределенной функции, например, initialize.
Какой контроллер вы (или ваш SceneBuilder) указали в FXML?Не могу представить, что SceneBuilder выберет класс Main в качестве контроллера.Кроме того, может быть, стоит прекратить использовать SceneBuilder в начале, иначе вы потеряетесь, если он каким-то образом сломается или в итоге не выполнит то, что вы хотите.