2016-07-29 55 views
1

我想知道是否有一種方法來禁用/阻止ScrollPane中的滾動?JavaFX8禁用ScrollPane的滾動

基本上我有一個包裹在一個Group對象中的Canvas來啓用縮放(這是通過'Ctrl +滾動'來完成的)。儘管由於某些原因,ScrollPane在觸發任何其他scrollEvent(例如Canvas,Group,ScrollPane,甚至ScrollPane的Parent!中的ScrollEvent)之前都會使用事件(如果它可以滾動)。

所以我想知道什麼選項(如果有的話)在ScrollPane消耗它之前捕獲scrollEvent。

感謝您的時間

+0

禁用方法可以完成這項工作嗎? – Javant

+1

您是否嘗試過使用事件過濾器? http://docs.oracle.com/javafx/2/events/filters.htm – jmpyle771

回答

0

感謝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(); 
    } 
}); 

非常感謝您的提示! 雖然我仍然不確定爲什麼平常的事件不會工作。