Советы по внедрению Java F XML MVC - PullRequest
0 голосов
/ 29 апреля 2020

Я впервые использую Java и JavaFX для создания базового c инвентаря GUI приложения для проекта класса. У меня есть главное меню и несколько подменю, вызываемых из главного меню. Я новичок в MVC, и я стараюсь изо всех сил держать свои GUI control и logi c раздельными. До сих пор у меня есть мой метод запуска JavaFX, подобный этому (я понимаю, что дополнительный этап, вероятно, не нужен. Это просто, чтобы уточнить, что это этап главного меню):

@Override
public void start(Stage mainStage) {
    Stage mainMenuStage = mainStage;
    String fxmlFilename;

    fxmlFilename = "MainMenu/MainMenu.fxml";
    mainMenuStage = this.LoadFXML(fxmlFilename);
    mainMenuStage.show();
}

Контроллер главного меню затем загружается и имеет следующий код:

package c482.InventoryManagement.MainMenu;

import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.Event;
import javafx.fxml.FXML;
import javafx.stage.Stage;

import c482.InventoryManagement.C482InventoryManagement;
import c482.InventoryManagement.MainMenu.MainMenu;
import c482.InventoryManagement.MainMenu.AddPart.AddPartMenu;

public class MainMenuController {

    C482InventoryManagement loadFxml = new C482InventoryManagement();
    MainMenu mainMenu;
    Stage addPartMenuStage;

    @FXML
    private void initialize() {    
        mainMenu = new MainMenu();
        addPartMenuStage = loadFxml.LoadFXML("MainMenu/AddPart/AddPartMenu.fxml");
    }

    @FXML
    private void partAddButton (Event event) {
        addPartMenuStage.show();
    }

Контроллер главного меню создает экземпляр MainMenu, который будет иметь методы для обработки любых логик c для данных главного меню. Контроллер также создает этапы подменю. Контроллер затем показывает этап AddPartMenu при нажатии соответствующей кнопки. Оттуда AddPartController создаст экземпляр класса логики AddPart c и обработает его.

Придерживается ли это идеи MVC? У меня есть правильная идея? Спасибо за любые предложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...