Я занимаюсь разработкой программного обеспечения с использованием JavaFX
.Это настольное приложение.Я новичок в MVC
, а также JavaFX
;Но узнать некоторые детали, прибегая к помощи.Я следую шагам здесь , чтобы узнать о JavaFX
, а также MVC
.Я знаю, что в MVC
, Model
- это POJO
, View
- это визуализация, и контроллер действует как на прием, так и на ввод и преобразование в команды для вида и модели.Модель также может иметь логику для обновления контроллера.У нас также для каждого представления должен быть контроллер. (view-controllers
) Но у меня есть вопрос;Почему в tutorial
мы создаем оба PersonEditDialog and PersonOverview stage
в mainApp
?Я имею в виду это:
public void showPersonOverview() {
try {
// Load person overview.
FXMLLoader loader = new FXMLLoader();
loader.setLocation(MainApp.class.getResource("view/PersonOverview.fxml"));
AnchorPane personOverview = (AnchorPane) loader.load();
// Set person overview into the center of root layout.
rootLayout.setCenter(personOverview);
// Give the controller access to the main app.
PersonOverviewController controller = loader.getController();
controller.setMainApp(this);
} catch (IOException e) {
e.printStackTrace();
}
}
И это:
public boolean showPersonEditDialog(Person person) {
try {
// Load the fxml file and create a new stage for the popup dialog.
FXMLLoader loader = new FXMLLoader();
loader.setLocation(MainApp.class.getResource("view/PersonEditDialog.fxml"));
AnchorPane page = (AnchorPane) loader.load();
// Create the dialog Stage.
Stage dialogStage = new Stage();
dialogStage.setTitle("Edit Person");
dialogStage.initModality(Modality.WINDOW_MODAL);
dialogStage.initOwner(primaryStage);
Scene scene = new Scene(page);
dialogStage.setScene(scene);
// Set the person into the controller.
PersonEditDialogController controller = loader.getController();
controller.setDialogStage(dialogStage);
controller.setPerson(person);
// Show the dialog and wait until the user closes it
dialogStage.showAndWait();
return controller.isOkClicked();
} catch (IOException e) {
e.printStackTrace();
return false;
}
} И те, и другие определены и созданы в классе mainApp
?Почему мы не создали PersonEditDialog stage
и scene
в PersonOverviewController?В контроллерах мы не должны использовать новое ключевое слово?Они просто являются связующим звеном между представлением и моделью?Я спрашиваю о правилах контроллера;для мульти stage
и .fxml
программного обеспечения.Мое программное обеспечение включает в себя 8 различных страниц (или больше). Нужно ли создавать все этапы в mainApp
?Почему бы не создать новый stage
и добавить соответствующий .fxml
к сцене этого этапа в предыдущем шаге приложения?