我有另一个窗格内的可拖动窗格。我想使子窗格只能在父窗格的边界内拖动,但是默认情况下,子窗格可以拖到任何地方。如何解决这个问题呢。
最佳答案
看这个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/