JavaFX8禁用ScrollPane滚动

时间:2016-07-29 09:35:13

标签: java javafx java-8 javafx-8 scrollpane

我想知道是否有办法禁用/阻止ScrollPane中的滚动?

基本上我有一个Canvas包装在一个Group对象中以启用缩放(通过'Ctrl + scroll'完成)。虽然由于某种原因,ScrollPane会在它触发任何其他scrollEvent之前消耗该事件(如果它可以滚动)(例如来自Canvas,Group,ScrollPane甚至ScrollPane的Parent的ScrollEvent!)。

所以我想知道在ScrollPane使用之前捕获scrollEvent的选项是什么(如果有的话)。

感谢您的时间

1 个答案:

答案 0 :(得分:2)

感谢joshpy,我得到了答案。

我原谅EventFilters是javafx中的一个东西。幸运的是,您也可以在eventFilter中使用Event,所以这是解决方案。

scrollPane.addEventFilter(ScrollEvent.SCROLL, event -> {
   if(event.isControlDown())
   {
      zoomCanvas(event) // zoom the canvas instead of scrolling the actual pane.
      event.consume();
   }
});

非常感谢小费! 虽然我仍然不确定为什么通常的事件不起作用。