我正在关注此示例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是否有任何变化?
答案 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)
。