前提・実現したいこと
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
Scenebuilderを使用してJavaFXのGUIを作成しております。Scenebuilderを使用するとFxml、model.java、controller.javaの3つのファイルが作成されると思います。このように3つのファイルに分割されるのはモデル・ビュー・コントローラ の概念を取り入れたからであるようです。
https://docs.oracle.com/javase/jp/8/javafx/fxml-tutorial/why_use_fxml.htm
一方、モデル・ビュー・コントローラではcontroller は入力情報をmodelへの命令に変換する役割を担うようです。そしてmodelはアプリケーションデータ、ビジネスルール、ロジック、関数等を含むとの記載があります。
https://ja.wikipedia.org/wiki/Model_View_Controller
しかしながら、以下のサンプルコードを見る限り、model(extends Applicationの実装クラス)では基本的にFxml、controllerを読み込み、それを元にprimaryStageを構築しているだけであるようです。そして主な処理はcontrollerの内部に記載されており、そこで完結しています。
https://blog.k3n.link/entry/touch-ui-from-other-thread-javafx
https://stackoverflow.com/questions/14782075/javafx-socket-programming-and-threads
https://yoshio3.com/2012/12/22/javaee7-websocket-client-sample-with-javafx/
これらを見るとcontroller内部のinitialize()関数は、非モデル・ビュー・コントローラのpublic void start(Stage primaryStage)関数のような役割を果たしているように見えます。
http://krr.blog.shinobi.jp/javafx/javafx%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89%E3%81%AE%E6%89%B1%E3%81%84
お尋ねしたい点は次の2点となります。
① modelには基本的に処理を記載せず、controllerに処理を記載するのか。またその場合モデル・ビュー・コントローラの概念から外れるのではないか。
② またcontroller内部のinitialize()関数は非モデル・ビュー・コントローラのpublic void start(Stage primaryStage)関数のような役割を担っているのか。
まとまりが悪くてすいませんが、ご教授よろしくお願いします。
また、Scenebuilderを用いたJavaFXアプリの作成についておすすめのサイトや書籍などもご教授いただけたら幸いです。
以上、よろしくお願いします。
あなたの回答
tips
プレビュー