簡體   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