我将 JavaFX 2 与 Scala 一起使用。
我有class Application extends javafx.application.Application
which 会执行诸如读取应用程序配置等操作。然后它会启动主窗口。
这个主窗口需要连接到一个名为MainWindow
. 我可以使用 来做到这一点fx:controller="com.foo.bar.MainWindow"
,但是,在这种情况下,实例MainWindow
无法访问我的应用程序的配置等。
我想到的一件事是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.
}
问题是如何获得对主应用程序的引用?我怎样才能进行依赖注入或任何等效的操作?