Слушатель JavaFX WebView ScrollEvent увеличивает и прокручивает. Только хочу, чтобы увеличить - PullRequest
0 голосов
/ 26 июня 2018

Я искал вокруг, чтобы увидеть, есть ли у кого-нибудь эта проблема, но большинство проблем, кажется, не связаны. У меня есть 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);
     }
  });

Я оставил распечатки, чтобы помочь с возможным устранением неполадок. Спасибо заранее.

EDIT

Скорее всего, следует добавить, что я поместил WebView в ScrollPane следующим образом:

scrollpane.setContent(webview);

1 Ответ

0 голосов
/ 26 июня 2018

Как прокомментировал @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();
     }
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...