ScrollPane Javafx中的平滑平移

时间:2016-10-18 10:39:29

标签: java javafx transformation scrollpane panning

我有一个启用了pannable的scrollPane。当使用大图像进行平移时,转换会延迟#34;鼠标背后的“块状”"转型。有没有办法来解决这个问题?如果您需要更多具体信息,那么没有太多与此相关的代码可以发布。

1 个答案:

答案 0 :(得分:1)

我意识到这是一篇过时的文章,但其他人可能需要在这方面提供帮助。解决此问题的方法是创建一个Transition对象,然后在插值函数下,将ScrollPane vValue或hValue设置为等于其自身加上0.001,具体取决于您要平移的速度。 vValue和hValue是ScrollPane上的查看位置,因此基本上您只是在慢慢增加查看的内容,因此看起来像是平移,但不是平移。这是我正在研究的项目中的一个示例,您可以在其中使用KeyEvents进行“平移”或“平移”。

@FXML
ScrollPane scroll;

private Transition down;
private Transition up;

public void initialize(){

    this.down = new Transition() {
        {
            setCycleDuration(Duration.INDEFINITE);
        }
        @Override
        protected void interpolate(double v) {
            scroll.setVvalue(scroll.getVvalue()+0.001);
        }
    };

    this.up = new Transition() {
        {
            setCycleDuration(Duration.INDEFINITE);
        }
        @Override
        protected void interpolate(double v) {
            scroll.setVvalue(scroll.getVvalue()-0.001);
        }
    };
}


@FXML
private void handleKeyPress(KeyEvent event){
    if(event.getCode() == KeyCode.S){
        down.play();
    }
    if(event.getCode() == KeyCode.W){
        up.play();
    }
}

@FXML
private void handleKeyRelease(){
    this.down.stop();
    this.up.stop();
}