コンテンツの高さが増加したときにScrollPaneコントロールを自動スクロールダウンする方法はありますか?たとえば、画面の下部(ScrollPane内)にTitledPaneがあり、それを展開すると、ScrollPaneを下にスクロールして、TitledPaneのコンテンツ全体を表示したいとします。
14829 次
8 に答える
2
垂直バーまたは水平バーに値を渡す前に、現在の座標がどこにあるかをスクロールペインに伝える必要があります。
このコードは私にとってはかなりうまくいきます:
// the owner's node of your scrollPane;
titledPane.layout();
// the maxValue for scrollPane bar ( 1.0 it's the default value )
scrollPane.setVvalue( 1.0d );
スクロールペインが大きくなる場所にこれをコーディングする必要があります。たとえば、スクロールペインの内部ノードにノードを追加する場合、その子リストにリスナーを追加します。
スクロールペインの内部ノードの高さが変わる場合は、heightProperty にリスナーを追加します。
たとえば、scrollPane の内部ノードは AnchorPane であり、このペインにノードを追加するため、次のようにします。
anchorPane.getChildren().addListener(
( ListChangeListener.Change<? extends Node> c ) -> {
titledPane.layout();
scrollPane.setVvalue( 1.0d );
}
);
伸びる身長なら…
heightProperty().addListener(
(observable, oldValue, newValue) -> {
titledPane.layout();
scrollPane.setVvalue( 1.0d );
}
);
それでおしまい!
于 2015-11-09T14:31:00.100 に答える
2
titledPane.localToScene()
との組み合わせでその動作を実現できますscrollPane.setVvalue()
1 つ目は titledPane の座標を取得することで、2 つ目は scrollPane の垂直バーの位置を設定することです。範囲は 0 ~ 1 であることに注意してください。
于 2012-10-31T12:42:35.670 に答える