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() でコントローラーを取得しようとしましたが、ジェネリック型を返します。何か関係がある場合はどうすればよいですか? オラクルのドキュメントにアクセスしましたが、よくわかりません。 getController() は ViewController.java のインスタンスを返しますか?

ViewController からモデルにアクセスするにはどうすればよいですか? たとえば、ボタンがトリガーされると、vieController は Model.java の値を更新します。

4

0 に答える 0