小编Aud*_*sis的帖子

在移动节点时更改 viewportBounds 后如何使光标停留在节点的边界内

我有可以移动的节点,这些节点放置在位于 ScrollPane 上的窗格上。当我将节点拖动到滚动窗格之外时viewportBoundsvvalue应该会发生变化,以便该节点再次位于这些边界内。为了解决这个问题,我尝试使用这个问题的答案。

我的问题是,当节点再次位于 的边界内之后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

5
推荐指数
1
解决办法
250
查看次数

标签 统计

javafx ×1