私はScalaでJavaFX2を使用しています。
アプリの設定を読み取るなどのclass Application extends javafx.application.Application
処理を行うものがあります。その後、メインウィンドウが起動します。
このメインウィンドウは、と呼ばれるコントローラーに接続する必要がありますMainWindow
。私はそれを行うことができますがfx:controller="com.foo.bar.MainWindow"
、この場合、のインスタンスはMainWindow
私のアプリケーションの構成などにアクセスできません。
私の頭に浮かんだことの1つは、クラスMainWindow
内でコントローラーを自分でインスタンス化し、すべての依存関係を挿入してから、コントローラーを作成したばかりのインスタンスにする必要があることをメインウィンドウビューに通知することです。Application
しかし、私はこれを行う方法がわかりませんか?
ある種の依存性注入などを介して、JavaFXのコントローラーのデータにアクセスするための好ましい方法は何ですか?
言い換えると、このビューFXML:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.Scene?>
<?import javafx.scene.control.*?>
<BorderPane fx:controller="com.foo.bar.MainWindow" prefHeight="703.0" prefWidth="803.0" xmlns:fx="http://javafx.com/fxml">
...
私のためにコントローラーを自動的にインスタンス化しますcom.foo.bar.MainWindow
か(?):
...
class MainWindow {
var app: Application = null
...
}
アクセスしたい情報を保持しているアプリケーションへの参照があります。
class Application extends javafx.application.Application {
...
// Stuff I want to access, application also fires up the first scene.
}
問題は、どうすればメインアプリケーションへの参照を取得できるかということです。依存性注入または同等のものをどのように実行できますか?