Я новичок в JavaFX и изо всех сил пытаюсь создать надлежащую архитектуру MVC с учетом моей текущей настройки. Я щелкнул вместе пользовательский интерфейс с помощью Scene Builder и назначил класс Controller.MVC Pattern в JavaFX с помощью Scene Builder
запуска:
public class Portal extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("PortalUI.fxml"));
stage.setTitle("Portal");
stage.setScene(new Scene(root));
stage.show();
}
}
А класс контроллера содержит остальную часть кода.
public class AccommodationPortalView implements Initializable {
@Override
public void initialize(URL url, ResourceBundle resources) {
// Work here.
}
}
Мой профессор попросил меня разделить проблемы и обязанности этого приложения. Контроллер не только управляет состоянием и разговаривает с бэкэнд, но также обновляет представление.
Мой первый ответ состоял в том, чтобы позволить классу Controller стать View и создать еще два класса для контроллера и модели.
Однако я не могу понять, как подключить эти штуки. Мне никогда не нужно создавать экземпляр представления, поэтому нет экземпляра представления, который я могу передать, например, моему контроллеру. Затем я попробовал сделать все синглеты и просто дать контроллеру их во время выполнения, но это дает мне ошибку.
public class Portal extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("PortalUI.fxml"));
stage.setTitle("Portal");
stage.setScene(new Scene(root));
stage.show();
// Controller gets a View and Model instance in initialize();
// Error: Instantiation and Runtime Exception...
PortalController.INSTANCE.initialize();
}
}
Как правильно настроить шаблон MVC с использованием моей текущей конфигурации? Требуется ли другая архитектура?
Здравствуйте! Спасибо за ответ, ссылка была также отличным ресурсом! У меня есть доступ к контроллеру и ...! Кажется, я понимаю это сейчас. Это совсем другая архитектура, из которой я привык. Большое вам спасибо за помощь мне :) – IAE