我想知道是否有办法禁用/阻止ScrollPane中的滚动?
基本上我有一个Canvas包装在一个Group对象中以启用缩放(通过'Ctrl + scroll'完成)。虽然由于某种原因,ScrollPane会在它触发任何其他scrollEvent之前消耗该事件(如果它可以滚动)(例如来自Canvas,Group,ScrollPane甚至ScrollPane的Parent的ScrollEvent!)。
所以我想知道在ScrollPane使用之前捕获scrollEvent的选项是什么(如果有的话)。
感谢您的时间
答案 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();
}
});
非常感谢小费! 虽然我仍然不确定为什么通常的事件不起作用。