ScalaFX 和 FXML 示例似乎不起作用
ScalaFX and FXML example doesnt seem to work
我按照这个例子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 所以生成 root javafx.Parent 是行不通的。
在制作这些示例后,scalafx 是否有任何更改??
答案是因为我在 SFXML 和普通 scalaFX 中间卡住了东西
我发现的第一件事是 import scalafx.Includes._
,这是我在示例中设法忽略的一行 "magic line",它修复了 javaFX 和 scalaFX 之间的所有怪异之处。这修复了 scene = new Scene(root)
的 No constructor
错误
我的控制器上有一个 @sfxml 注释 class 但没有使用 SFXML 的 FXMLView 加载它,这导致 javafx 找不到无参数构造函数。
最后,FXMLView 需要一个依赖解析器(即 Subcut),但他们也有一个 NoDependencyResolver
对象来拯救我们这些甚至还不需要的凡人的培根 FXMLView(resource, NoDependencyResolver)
。
我按照这个例子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 所以生成 root javafx.Parent 是行不通的。
在制作这些示例后,scalafx 是否有任何更改??
答案是因为我在 SFXML 和普通 scalaFX 中间卡住了东西
我发现的第一件事是 import scalafx.Includes._
,这是我在示例中设法忽略的一行 "magic line",它修复了 javaFX 和 scalaFX 之间的所有怪异之处。这修复了 scene = new Scene(root)
No constructor
错误
我的控制器上有一个 @sfxml 注释 class 但没有使用 SFXML 的 FXMLView 加载它,这导致 javafx 找不到无参数构造函数。
最后,FXMLView 需要一个依赖解析器(即 Subcut),但他们也有一个 NoDependencyResolver
对象来拯救我们这些甚至还不需要的凡人的培根 FXMLView(resource, NoDependencyResolver)
。