scalafx - ScalaFx Group 包裹节点数据提取
问题描述
尝试提取 Group 包装的节点数据似乎非常棘手。任何指针在节点对象(根据定义没有子对象)中获取数据,如下面的代码我想在 Group(VBox(Rectangle)) 中获取 Rectangle.userData?
def west(): Unit = {
def boxPart(ix: Int): VBox = new VBox {
padding = Insets(2, 5, 8, 5)
userData = "My userData VBox wrap"
children = (
new Rectangle {
width = 250
height = 125
fill = Color.DeepSkyBlue
userData = "My userData Rectangle wrap"+ix.toString
}
)
}
val packet = new Group(boxPart(12345))
val vboxproof = packet.children.get(0).userData
println("TESTER:" + vboxproof)
// getting rectangle userData ???
}
west
解决方案
的孩子Group
是通用Node
的。您需要访问孩子的实际类型才能访问其他属性。另请记住,您正在导航 JavaFX 场景图,因此需要将子级“强制转换”为 JavaFX 类型。您可以vboxproof
使用类似这样的东西来创建以下内容的孩子VBox
:
val vboxproof = packet.children.get(0) match {
case v : javafx.scene.layout.VBox => v.children.get(0).userData
case v => "Unexpected type: " + v.getClass.getName
}
推荐阅读
- python - 如何求两个的最大幂
- java - 类型参数可以是Java中的引用吗?
- django - LTE 连接上的 Chrome err_connection_reset
- asp.net-mvc - 无法从实体框架填充 ASP.NET MVC 5 中的下拉列表
- html - 无法居中标题
- android - 如何实时获取firestore文档列表android
- android - Android PDF 共享 Intent 仅适用于 Whatsapp
- c - 如何将 ac 文件链接到两个可执行文件
- c# - 使用 WebBrowser 控件访问 Shockwave Flash COM 对象
- oracle - 原因:org.hibernate.HibernateException:当未设置“hibernate.dialect”时,对 DialectResolutionInfo 的访问不能为空(在 Oracle DB 上)