javafx.scene.controlのクラスであるScrollPaneのスクロールバーの速さ(1スクロールで進む量)の変更方法が地味に見つからなかったのでメモ。
環境
エディタ:eclips
JavaFXバージョン:javafx-sdk-18.0.1
javax.swingの場合
ちなみにjavax.swingのクラスであるJScrollPaneならば、
JScrollPane scroll = new JScrollPane();
scroll.getVerticalScrollBar().setUnitIncrement(hoge);
でhogeの値を変更するだけでよい。
JavaFXの場合
ScrollPaneのドキュメントは以下の通り。
見ればわかるように、Incrementの値を変更するメソッドどころか、ScrollBarを取り出すメソッドもない。
そのため、addListenerで元の位置と現在の位置を取得し、その進んでいる方向を検知して、新たな位置からその方向にさらに進めてあげる必要がある。
ScrollPaneのvvalueというプロパティは、垂直方向のスクロール位置を0.0~1.0のdouble型で表している。