ScrollPane Javafx中的平滑平移

问题描述 投票:1回答:1

我有一个启用了pannable的scrollPane。当以大图像平移时,转换“滞后”于鼠标后面,从而形成“块状”转换。有没有办法来解决这个问题?如果您需要更多详细信息,请问这里没有多少与实际相关的代码。

java javafx transformation scrollpane panning
1个回答
0
投票

我意识到这是一篇过时的文章,但其他人可能需要这方面的帮助。解决此问题的方法是创建一个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();
}
© www.soinside.com 2019 - 2024. All rights reserved.