gpt4 book ai didi

JavaFX WebView ScrollEvent 监听器放大并滚动。只希望它放大

转载 作者:行者123 更新时间:2023-11-29 04:18:04 34 4
gpt4 key购买 nike

我一直在四处寻找是否有人遇到过这个问题,但大多数问题似乎都不相关。我在滚动 Pane 中有一个 JavaFX WebView。我试图做到这一点,当您按住 ctrl + 滚轮时,它会相应地放大和缩小。

该代码确实放大和缩小,但不正确。当我按住 ctrl + 滚轮时,它既可以滚动又可以放大或缩小。

这是我的代码的相关部分:

// Allow for dynamic zooming based on scrollwheel
webview.addEventHandler(ScrollEvent.SCROLL, (ScrollEvent e) -> {
System.out.println("Zoom in or out based on scroll bar");
double deltaY = e.getDeltaY();
System.out.println(deltaY + " " + e.isControlDown());
if(e.isControlDown() && deltaY > 0) {
webview.setZoom(webview.getZoom() * 1.1);
} else if(e.isControlDown() && deltaY < 0) {
webview.setZoom(webview.getZoom() / 1.1);
}
});

我留下了打印输出语句以帮助进行可能的故障排除。提前谢谢你。

编辑

我应该像这样把 WebView 放在 ScrollPane 中:

scrollpane.setContent(webview);

最佳答案

正如@Slaw 在我的问题中评论的那样,我所要做的就是在我的 if 语句中使用事件并将事件处理器从处理程序更改为过滤器,如下所示:

webview.addEventFilter(ScrollEvent.SCROLL, (ScrollEvent e) -> {
double deltaY = e.getDeltaY();
if(e.isControlDown() && deltaY > 0) {
webview.setZoom(webview.getZoom() * 1.1);
e.consume();
} else if(e.isControlDown() && deltaY < 0) {
webview.setZoom(webview.getZoom() / 1.1);
e.consume();
}
});

关于JavaFX WebView ScrollEvent 监听器放大并滚动。只希望它放大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51048312/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com