Передать в Controller объект из Main
Как передать контроллеру объект, который создается в методе main()?
Пример:
public class MainApp extends Application {
public static void main(String[] args) {
Some some = new Some(); // это нужно передать в контроллер, но необходимо создавать в Main
launch(args); // как я понимаю здесь создается объект контроллера
}
}
class Controller implements Initializable {
Some some; // используется здесь
@FXML
Button btn;
public void clkBtn(ActionEvent actionEvent) {
some.somethingDoing("хочу что-то передать");
}
}
Ответы (1 шт):
Автор решения: Andrew Bystrov
→ Ссылка
launch(args); // как я понимаю здесь создается объект контроллера
нет, объект контроллера создается только при его загрузке. Чтобы загрузить контроллер, можно воспользоваться кодом
FXMLLoader loader = new FXMLLoader(getClass().getResource("тут путь до fxml файла"));
Parent mainView = loader.load(); //тут происходит загрузка вью и инициализация контроллера ( через метод initialize)
Controller controller = loader.getController();
Some some = new Some();
controller.setSome(some); //проставляете значение в котроллер