2016-07-23 62 views

回答

2

您可以設置ScrollPanevmaxProperty

該ScrollPane的最大允許vvalue。默認值是1

通過設置這個屬性的ScrollPane的滾動條被重新調整,這樣滾動條的最底部位置實際上是規定值

這將只允許垂直空間的40%將被滾動:

scrollPane.setVmax(0.4); 

另一種可能是中斷通過監聽ScrollPanevvalueProperty財產向下滾動。

用這種方法,ScrollPane的滾動條停在一個定義的值上,所以最底部的位置仍然是100%

final double maxDownScroll = 0.4; 
scrollPane.vvalueProperty().addListener((obs, oldVal, newVal) -> { 
    if ((double) newVal > maxDownScroll) 
     scrollPane.setVvalue(maxDownScroll); 
}); 

注:這兩種方法是不是添加過濾器至ScrollPaneScrollEvent,因爲他們在移動滾動條的情況下工作,也可以使用鼠標滾動的情況下(ScrollEvent僅觸發時更通用使用鼠標滾輪,大頭釘或類似裝置)。

+0

謝謝,其他的可能性是我需要的。並且還要感謝你的提示。 – Curious

1

好的我解決了它。代碼:

scrollPane.addEventFilter(ScrollEvent.SCROLL, new EventHandler<ScrollEvent>() { 
       @Override 
       public void handle(ScrollEvent event) { 
        //"0.4 is my the specific value" 
        if(scrollPane.getVvalue() > 0.4) { 
         if (event.getDeltaY() < 0) { 
          event.consume(); 
         } 
        } 
      } 
     }); 
相關問題