繁体   English   中英

在BorderPane中时不遵守ScalaFX / JavaFX Node.translateX / Y

[英]ScalaFX/JavaFX Node.translateX/Y not obeyed when inside BorderPane

我正在绘制各种我希望能够在屏幕上拖动的矩形节点。

我的代码当前是这样的:

  stage = new Stage {
    scene = new Scene(1100, 700) {
      root = new BorderPane {
        center = new Group() {
          fill = Color(0.22, 0.22, 0.22, 1.0)
          children = List(
            new Rectangle with Draggable {
              x = 100.0
              y = 100.0
              width = 80.0
              height = 50.0
              arcWidth = 7.5
              arcHeight = 7.5
              fill = Color(0.15, 0.15, 0.15, 1.0)

              onMousePressed = (event: MouseEvent) => {
                draggablePerformPress(event)
              }

              onMouseDragged = (event: MouseEvent) => {
                draggablePerformDrag(event)
              }
            }
          )
        }
      }.delegate
    }
  }

Draggable特征提供了draggablePerformPress()和draggablePerformDrag()方法,本质上是在其中设置了translateX和translateY的位置。

如果我在“矩形”节点上单击并拖动,它不会移动。 但是,如果删除BorderPane并将Group对象作为场景的根,则可以进行拖动。 我已经确认onMouse事件已被触发,因此一定是由于某种原因BorderPane覆盖了translationX / Y ...我只是不知道为什么,而且我也不知道如何防止这种情况的发生。

我解决了问题。 通过将组更改为窗格,代码即可正常工作。 但是,我仍然不确定为什么不能在这种情况下使用Group(但是在没有BorderPane作为其父对象的情况下可以使用Group)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM