0

我在这里按照这个例子

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 所以让 root javafx.Parent 不起作用。

自从做了这些例子后,scalafx 有什么变化吗?

4

1 回答 1

0

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

我发现的第一件事import scalafx.Includes._是我在示例中设法忽略的一条线是一条“神奇线”,它修复了 javaFX 和 scalaFX 之间的所有怪异之处。这修复了No constructor错误scene = new Scene(root)

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

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

于 2016-02-24T21:42:36.507 回答