私はjavafxで足を濡らしています。これが私がやっていることです。
FXML Views
DI Controllers
Weld-SE Managed Services and Models
Trying to confine UI to FXML
Trying keep the Controllers thin
問題:
UI をコーディングしようとすると、ほとんどの静的 UI は fxml 内に限定されます。しかし、自分で要素を追加、削除、表示、非表示にするなどのシナリオがあります。
fxを使用すると、特定のアクション/イベントで呼び出すビューでコントローラーメソッドを構成できるため、コントローラー内でこれを行っていることに気づきました。このコードはすべて、動的 UI の構築/操作を処理し、ビュー レイヤー内に属します。しかし、それはコントローラーに行き着き、コントローラーを太らせます。
javafx は JavaScript 統合を提供します。これは、そのビュー操作コードを抽象化する 1 つの可能な方法です。しかし、これはそれほど完璧ではない JavaScript をミックスに追加することになります。
Thin Controller Paradigm を壊さないように、Java または fxml でコードを抽象化するにはどうすればよいですか?
編集
@assylias
同意して、Java クラスと fxml が一緒になって再利用可能なウィジェットになるように、これとこの方法について考えました。しかし、これを FXML にどのように配線すればよいでしょうか。FXML はコントローラー以外は理解できません。このビュー クラスを fx:controller を使用して fxml に接続し、controller という名前を付けないとします。だから私はこのようなものを持っています。
このビュー クラスにはビュー操作コードしかありません。次に、別のコントローラー クラスを作成します。しかし、フォーム データをこのコントローラーに何らかの方法で入力することを期待します。これは、ユーザーがフォームを送信したときにのみ発生します。ある意味、UI操作のリクエスト・イベントと実際のデータ操作のリクエスト・イベントが違うことをjavafxにどうにかして伝える必要があります。
あなたの考え、冗長だったらごめんなさい。できるだけ短い言葉でそれを明確にしようとしました。