【发布时间】:2012-09-15 16:35:08
【问题描述】:
我正在使用带有 Scala 的 JavaFX 2。
我有class Application extends javafx.application.Application,它会执行读取应用配置等操作。然后它会启动主窗口。
此主窗口需要连接到名为MainWindow 的控制器。我可以用fx:controller="com.foo.bar.MainWindow" 做到这一点,但是在这种情况下MainWindow 的实例无法访问我的应用程序的配置等。
我想到的一件事是在Application 类中自己实例化MainWindow 控制器并注入所有依赖项,然后告诉主窗口视图该控制器应该是我刚刚创建的实例。但是,我不知道该怎么做?
在 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.
}
问题是如何获得对主应用程序的引用?如何进行依赖注入或任何等效操作?
【问题讨论】: