JavaFX-向后拖动节点+滚动窗格?

JavaFX-向后拖动节点+滚动窗格?,java,javafx,javafx-8,Java,Javafx,Javafx 8,我有一个JavaFX应用程序,它有一个可滚动的区域。在该可滚动区域中,可以添加各种类型的可拖动节点。您可能会认为,如果将节点拖向边,它将朝该方向滚动。但是,它会以相反的方向滚动 拖动的工作原理如下: myNode.setOnMousePressed(new EventHandler<MouseEvent>(){ @Override public void handle(MouseEvent t){ ori

我有一个JavaFX应用程序,它有一个可滚动的区域。在该可滚动区域中,可以添加各种类型的可拖动节点。您可能会认为,如果将节点拖向边,它将朝该方向滚动。但是,它会以相反的方向滚动

拖动的工作原理如下:

        myNode.setOnMousePressed(new EventHandler<MouseEvent>(){
        @Override
        public void handle(MouseEvent t){
                originalX1 = 200;
                originalY1 = 200;
                newX1 = ((WebView)(t.getSource())).getTranslateX();
                newY1 = ((WebView)(t.getSource())).getTranslateY();

                System.out.println("(" + newX1 + ", " + newY1 + ")");
        }
    });
    myNode.setOnMouseDragged(new EventHandler<MouseEvent>(){
        @Override
        public void handle(MouseEvent t){
                double offsetX = t.getSceneX() - 210;
                double offsetY = t.getSceneY() - 220;
                double newTranslateX = newX + offsetX;
                double newTranslateY = newY + offsetY;

                ((NodeType)(t.getSource())).setTranslateX(newTranslateX);
                ((NodeType)(t.getSource())).setTranslateY(newTranslateY);

                System.out.println("(" + newTranslateX + ", " + newTranslateY + ")");

        }
    });

如果要在滚动窗格中滚动,可能应该使用滚动窗格的Hvalue和Vvalue。 作为一种方法,如下所示:

if (scrollPane.getViewportBounds().getWidth() - t.getSceneX() <= 20) { // Look if the user dragged to the right border
    // Set the horizontal scroll-bar 3% wider
    scrollPane.setHvalue(scrollPane.getHvalue() + 0.03);
} else if (scrollPane.getViewportBounds().getHeight() - t.getSceneY() <= 20) { // Look if the user dragged to the bottom border 
    // Set the vertical scroll-bar 3% wider
    scrollPane.setVvalue(scrollPane.getVvalue() + 0.03);
}
// @TODO Do this for the top and left border too
快乐编码,
Kalasch

你有一个可以拖动的滚动窗格,还是webview是可滚动的区域?哇,我想把它改成NodeType。它是各种不同的节点类型,可以在anchorpane中拖动,适合滚动窗格。谢谢你的回复,我想我什么也得不到@卡拉什尼