2013-07-16 10 views
6

JavaFXのScrollBarクラスには、ユニットインクリメントを設定するためのプロパティがありますが、このスクロールバーで取得する方法やユニットのインクリメントをScrollPaneクラスから設定する方法が見つかりません!私は明白な何かを見逃しているに違いないと思います - これをどうすれば達成できますか?JavaFXでスクロールペインの単位増分を設定するにはどうすればよいですか?

+0

downvoteの理由は何ですか? – berry120

答えて

4

技術的には、スキンが初期化された後(スクロールバーが表示されている場合)、.lookup("scrollbar")メソッドを使用して取得する必要があります。私はその答えが好きではありません。

私はあなたがこのJIRAチケットに応じて何かを逃しているとは思わない:https://javafx-jira.kenai.com/browse/RT-16510

私は、その上でジャンプすることをお勧めご利用の場合、投票を提示し、あなたはいくつかの並べ替えを取得することができるかどうかを確認したいです今後の対応について

6

ScrollEventListenerをScrollPaneに設定して、元の動作を上書きすることができます。この方法では、たとえば、垂直方向ではなく水平方向にスクロールするScrollPaneを実装しました。

public class Overview extends ScrollPane { 

... 



    private void setupHorizontalScrolling() { 
    this.setOnScroll(new EventHandler<ScrollEvent>() { 
     @Override 
     public void handle(ScrollEvent scrollEvent) { 
     double deltaY = scrollEvent.getDeltaY()*2; // *2 to make the scrolling a bit faster 
     double width = Overview.this.getContent().getBoundsInLocal().getWidth(); 
     double hvalue = Overview.this.getHvalue(); 
     Overview.this.setHvalue(hvalue + -deltaY/width); // deltaY/width to make the scrolling equally fast regardless of the actual width of the component 
     } 
    }); 
    } 

... 

} 

はあなたの要件を満たすために、あなただけのget/setHvalueは/ setVvalueを取得するために呼び出された行を変更することができ、その後、あなたはあなたのようなスクロールを調整することができます。これは私のコードの関連部分は次のようになります欲しいです。

関連する問題