質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

FXML

FXMLは、JavaFXに用意されているXMLベースのGUI記述言語です

Q&A

0回答

362閲覧

SceneBuilderを用いたGUI作成における2つのjavaファイルの役割

teratail2020

総合スコア9

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

FXML

FXMLは、JavaFXに用意されているXMLベースのGUI記述言語です

0グッド

0クリップ

投稿2020/05/07 12:55

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)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アプリの作成についておすすめのサイトや書籍などもご教授いただけたら幸いです。
以上、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問