我有另一个窗格内的可拖动窗格。我想使子窗格只能在父窗格的边界内拖动,但是默认情况下,子窗格可以拖到任何地方。如何解决这个问题呢。

最佳答案

看这个demo。该应用程序生成可拖动的标签,该标签可在整个场景中移动。要设置边界限制,请使用以下技术:在onMouseDragged处理函数中,我们计算节点的当前位置,如果不满足某些条件,则不对其进行修改。尤其:

label.setOnMouseDragged(new EventHandler<MouseEvent>() {
    @Override public void handle(MouseEvent mouseEvent) {

      //Sets the drag boundaries limit
      double newX = mouseEvent.getSceneX() + dragDelta.x;
      if (newX > 200 || newX < 10) {
        return;
      }

      label.setLayoutX(mouseEvent.getSceneX() + dragDelta.x);
      label.setLayoutY(mouseEvent.getSceneY() + dragDelta.y);
    }
  });

关于java - 在其父 Pane 中设置可拖动 Pane 的边界限制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22683220/

10-09 02:46