【发布时间】:2019-01-30 20:33:26
【问题描述】:
我有一个未装饰的舞台,其中有一个自定义标题栏。这个标题栏包含“IconButtons”,它们只是持有 ImageViews 的 StackPanes。
我还使用此代码通过标题栏(Kotlin 代码)使舞台可拖动:
fun makeDraggable(stage: Stage, byNode: Node) {
val dragDelta = Delta()
byNode.setOnMousePressed { e ->
if (stage.isFullScreen || stage.isMaximized) {
return@setOnMousePressed
}
dragDelta.x = stage.x - e.screenX
dragDelta.y = stage.y - e.screenY
}
byNode.setOnMouseDragged { e ->
if (stage.isFullScreen || stage.isMaximized) {
return@setOnMouseDragged
}
stage.x = e.screenX + dragDelta.x
stage.y = e.screenY + dragDelta.y
}
}
现在,问题是即使鼠标悬停在这些“图标按钮”之一上,舞台也是可拖动的。使用普通的 JavaFX 按钮,这似乎不是问题。我不明白为什么会这样,以及如何解决它。
【问题讨论】:
-
假设事件的工作方式与 java 中的相同,您应该能够使用按钮的事件或检查事件的
pickResult是Buttons 之一或其后代之一.