我有可以移动的节点,这些节点放置在位于 ScrollPane 上的窗格上。当我将节点拖动到滚动窗格之外时viewportBounds,vvalue应该会发生变化,以便该节点再次位于这些边界内。为了解决这个问题,我尝试使用这个问题的答案。
我的问题是,当节点再次位于 的边界内之后viewportBounds,光标相对于该节点移动,如果我想继续将节点移动到视口之外,经过几次迭代后,光标将移动得太多,以至于它会在视口之外整个应用程序窗口并将靠在屏幕边界上。如何保持光标在节点上的位置?
如果您想测试代码,请记住,viewport仅当您沿 Y 轴移动节点时才会发生边界重组。
public class NewFXMain extends Application {
@Override
public void start(Stage primaryStage) {
AnchorPane root = new AnchorPane();
ScrollPane scrollPane = new ScrollPane(root);
root.setPrefSize(5000,5000);
Scene scene = new Scene(scrollPane, 800, 600, Color.rgb(160, 160, 160));
final int numNodes = 6; // number of nodes to add
final double spacing = 30; // spacing between nodes
// add numNodes instances of DraggableNode to the root …Run Code Online (Sandbox Code Playgroud) javafx ×1