JavaFX MVC-模型在设置值后重置值/模型未保留值

JavaFX MVC-模型在设置值后重置值/模型未保留值,java,javafx,model-view-controller,Java,Javafx,Model View Controller,在我的程序中,我想从滑块更新我的模型,它是这样做的 public class Controller implements Initializable { @FXML private Model model = new Model(); @FXML public void editDone() throws Exception { model.setStarterCash((int)cashSlider.getValue()); m

在我的程序中,我想从滑块更新我的模型,它是这样做的

public class Controller implements Initializable {

    @FXML
    private Model model = new Model();
    @FXML
    public void editDone() throws Exception {
        model.setStarterCash((int)cashSlider.getValue());
        model.setNumAction((int)acSlider.getValue());
        model.setNumSalary((int)scSlider.getValue());
        model.setNumCareer((int)ccSlider.getValue());


        Stage doneStage = (Stage)editSave.getScene().getWindow();
        Parent doneView = FXMLLoader.load(getClass().getResource("View/editMenu.fxml"));

        Scene doneScene = new Scene(doneView);
        doneStage.setScene(doneScene);
        doneStage.show();

        System.out.println("Starter cash set to: " + model.getStarterCash());
        System.out.println("Action Deck amount set to: " + model.getNumAction());
        System.out.println("Salary Deck amount set to: " + model.getNumSalary());
        System.out.println("Career Deck amount set to: " + model.getNumCareer());
    }
}
将其打印到控制台

Starter cash set to: 350000
Action Deck amount set to: 75
Salary Deck amount set to: 20
Career Deck amount set to: 11
但是,当场景发生变化时,我尝试检查我的值在另一个场景中是否仍然相同(使用getter),它会重置/显示0。我是否正确地更新了模型

更新 这是模型类。该模型包含来自“选项”场景的数据的setter和getter,但当我尝试访问我在不同场景(如“开始游戏”场景)中从所述场景设置的值时,它输出0

package Model;

public class Model {
    private Board b;

    private int starterCash;
    private int numAction;
    private int numSalary;
    private int numCareer;
    private int numPlayers;

    public Model () {
         b = new Board();
    }

    public int getStarterCash() {
        return starterCash;
    }

    public int getNumAction() {
        return numAction;
    }

    public int getNumCareer() {
        return numCareer;
    }

    public int getNumSalary() {
        return numSalary;
    }

    public int getNumPlayers() {
        return numPlayers;
    }

    public void setNumPlayers(int numPlayers) {
        this.numPlayers = numPlayers;
    }

    public void setStarterCash(int starterCash) {
        this.starterCash = starterCash;
    }

    public void setNumAction(int numAction) {
        this.numAction = numAction;
    }

    public void setNumCareer(int numCareer) {
        this.numCareer = numCareer;
    }

    public void setNumSalary(int numSalary) {
        this.numSalary = numSalary;
    }

    public Board getB() {
        return b;
    }
如果需要,这里是应用程序启动的主类

package View;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("mainMenu.fxml"));
        primaryStage.setTitle("That's Life!");
        primaryStage.setScene(new Scene(root, 1024, 576));
        primaryStage.show();

    }

    public static void main(String[] args) {
        launch(args);
    }
}

什么是
型号
?如何申报?它是如何初始化的?--在另一个场景中?每个场景是否都有各自不同的
模型实例
?我更新了我的问题:)希望有帮助!另外,我在Controller中只实例化了一次模型类。这是否回答了您的问题?每次创建新的控制器实例时,都会创建一个新的模型实例。因此,如果重新加载FXML,就会得到一个新模型。