0

我正在使用结合 FXML 的 javafx。我想应用 MVC 模式。为此,我希望我的 Model.java 类成为模型,它启动 View.fxml,并且该视图的控制器将是 viewController.java。

我需要带上 Model.java 和 Controller.java 在某个时候进行通信。所以假设 ViewController.java 看起来是这样的:

public class ViewController implements Initializable {

    private String parameter = "hello";
    @FXML
    private Label label;

    @FXML
    private Accordion acccord;

    public String getParemeter() {
        return this.parameter;
    }

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // TODO
    }    

}

ViewController 有一个私有字符串和它自己的方法。

和 Model.java :

public class Model extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        FXMLLoader loader = new FXMLLoader(getClass().getResource("View.fxml") );

        Parent root = loader.load();  // Here the View is loaded and the Contoller is created along.

        loader.getController(); // ?
        //Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));

        Scene scene = new Scene(root);

        stage.setScene(scene);
        stage.show();
    }

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

}

如何访问 ViewContoller 参数/方法(例如 getPamareter() )?我尝试使用 loader.getController() 获取控制器,但它返回一个泛型类型,如果它与它有关,我应该如何处理它?我去了 oracle 文档,但我不太确定,getController() 是否返回我的 ViewController.java 的实例?

如何从 ViewController 访问模型?例如一个按钮被触发,vieController 将更新 Model.java 中的一个值。

4

0 回答 0