JavaFX WebView ScrollEvent 监听器放大并滚动。只想把它放大

标签 java javafx webview

我一直在四处寻找是否有人遇到过这个问题,但大多数问题似乎都是无关的。我在滚动 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/

相关文章:

java - 尝试在我的 Controller 中使用原始版本和全屏版本的 Pane 也会更改窗口版本中的 Pane

java - 用于学习 Java 数据结构的简单应用程序

Java 保存图像

javascript - Android webview,在 Assets 文件夹中加载javascript文件

java - 在 list-android 中搜索并检索结果

java - 如何深度克隆双向链表?

javafx - Label JavaFX上的SceneBuilder工具提示

java - 如何将 JFrame 嵌入到 JavaFX 2.0 应用程序中?

objective-c - 如何使用WebView检测动态html更新?

使用 GeolocationPermissions 的 Android WebView