我对 Scala 和 ScalaFX 很陌生,所以我可能没有正确理解这一点。我的问题:我将一个节点(fe 按钮)添加到 ScalaFX 窗格(fe VBox)。当我访问窗格的子项时,子项类型从 ScalaFX Button 更改为 JavaFX Button。
当我查看 ScalaFX 的源代码时,我可以看到一切都是通过委托完成的。那么 ScalaFX 节点丢失了吗?我认为从 ScalaFX 到 JavaFX 的隐式转换做了一些神奇的事情(对于我作为新手来说)。是否可以反过来进行隐式转换?我是否正确使用了 ScalaFX?
我想通过一个窗格的所有孩子。当一个孩子来自特殊类型时,我想对这个孩子执行一些操作。现在我必须检查 JavaFX 类型并在 JavaFX 节点上工作,这对我来说看起来不像是干净的代码。
欢迎任何意见。提前致谢。
我附上了一个运行示例。
import scalafx.Includes._
import scalafx.application.JFXApp
import scalafx.application.JFXApp.PrimaryStage
import scalafx.scene.Scene
import scalafx.scene.control.Button
import scalafx.scene.layout.VBox
import scalafx.stage.WindowEvent
object TestChildren extends JFXApp {
stage = new PrimaryStage {
val contentPane = new VBox()
val b1 = new Button("B1")
contentPane.children.add(b1)
scene = new Scene (contentPane)
println(b1.getClass)
println("--")
for (child <- contentPane.children) {
println(child.getClass)
}
}
}