我遵循这个例子,这里
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)并不是一个构造函数。
根应该是javafx.scene,而stage.scene是scalafx.scene.Scene,因此使根javafx.Parent不能工作。
自这些例子出现以来,有没有对scalafx进行过任何更改?
发布于 2016-02-24 21:42:36
答案是因为我把东西卡在SFXML和普通scalaFX的中间。
我发现的第一件事是import scalafx.Includes._,这是我在示例中忽略的一行,它是一条“魔术线”,它修复了javaFX和scalaFX之间的所有奇怪之处。这将修复scene = new Scene(root)的scene = new Scene(root)错误。
我的控制器类上有一个@sfxml注释,但是没有使用SFXML的FXMLView加载它,这导致javafx找不到一个no args构造函数。
最后,FXMLView需要一个依赖解析器(即Subcut),但是他们也有一个NoDependencyResolver对象来拯救我们这些甚至不需要FXMLView(resource, NoDependencyResolver)的凡人的培根。
https://stackoverflow.com/questions/35468474
复制相似问题