ScalaFX和FXML示例似乎不起作用

时间:2016-02-17 21:49:00

标签: scala scalafx

我正在关注此示例here

object DataEditor extends JFXApp {
  val resource = getClass.getResource("MainWindowView.FXML")
  if(resource == null){
    throw new IOException("Cannot load Resource")
  }
  val root:jfxs.Parent = jfxf.FXMLLoader.load(resource)

  stage = new PrimaryStage {
    title = "Data Editor"
    scene = new Scene(root)
  }
}

但出于某种原因new Scene(root)不能作为构造函数。

Root应该是javafx.scene而stage.scene是scalafx.scene.Scene,所以使根javafx.Parent不起作用。

自从这些例子发布以来,scalafx是否有任何变化?

1 个答案:

答案 0 :(得分:0)

答案是因为我把东西放在SFXML和普通的scalaFX中间

我发现的第一件事是import scalafx.Includes._,这是我在示例中忽略的一条线是一条"魔术线"这修复了javaFX和scalaFX之间的所有奇怪现象。这样可以解决No constructor

scene = new Scene(root)错误

我的控制器类上有@sfxml注释,但是没有使用SFXML的FXMLView加载它,导致javafx无法找到无参数构造函数。

最后FXMLView需要一个依赖性解析器(即Subcut),但它们还有一个NoDependencyResolver对象来保存我们凡人的培根,他们甚至不需要一个FXMLView(resource, NoDependencyResolver)