2016-07-23 13 views

答えて

2

ScrollPanevmaxPropertyを設定できます。

このScrollPaneの最大許容値です。デフォルト値はScrollPaneのスクロールバーが再スケーリングされ、このプロパティを設定することで1

をので、スクロールバーの最も下の位置が実際に指定した値です。

これはスクロールする垂直スペースの40%のみ許可します:別のpossiblity

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

OK私はそれを解決しました。コード:

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(); 
         } 
        } 
      } 
     }); 
関連する問題