将数据传递给 ScalaFX JFXApp

Pass data to a ScalaFX JFXApp

我在 ScalaFX 中写了一个 GUI,它在单独测试时效果很好。值得一提的事情:

整个启动过程如下所示:

def main(args: Array[String]) {
    ...
    ...
    JFXGui.setData(data)
    JFXGui.main(Array())
}

问题:

我该如何解决这个问题?感谢任何帮助,谢谢。

编辑:

JFXGui 是我的 ScalaFX 的名字 UI:

object JFXGui extends JFXApp {

  private var data: Data = _

  def setData(data: Data) {
    this.data = data;
 }

  // tons of ScalaFX related things which visualize the data object
  // ...
}

解决方案 1(重新使用 JFXApp)

Gui对象不再应该是一个对象,而是一个带有构造函数参数的class。

class Gui(data: Data) extends JFXApp {
    //your existing code without the field data and the method setData()
}

在启动中class:

new Gui(data).main(Array())

解决方案 2(自定义初始化)

您不一定要使用 JFXApp 才能 运行 您的应用程序。我建议你看看 JFXApp.main() and the class AppHelper 的源代码。它们包含约 10 行代码,因此您只需复制它们的源代码并根据您的需要进行定制。