1
私のコードを修正しましたが、今はマウスのスクロールで動作しますが、スクロールすることができます。これは、 "val + = sb.getUnitIncrement()"を設定したので発生します。そのため、スクロールアップまたはスクロールして、 "val - = sb.unitIncrement()"までスクロールすると検出する条件を挿入すると考えました。問題は、私がその方法を見つけることができなかったことです。私は何を使うべきですか?私のシーンのScrollEvent
private double val = 0;
@FXML
private Button back;
@FXML
private AnchorPane Instructions;
@FXML
private ImageView image;
@FXML
private ScrollBar sb;
private void scroll() {
sb.sceneProperty().addListener((ObservableValue<? extends Scene> observable, Scene oldValue, Scene newValue) -> {
if (newValue != null) {
sb.getScene().setOnScroll((ScrollEvent event) -> {
if (val < sb.getMax()) {
val += sb.getUnitIncrement();
image.setLayoutY(-val);
if (val < sb.getMax() - sb.getUnitIncrement()) {
back.setVisible(false);
} else if (val >= sb.getMax() - sb.getUnitIncrement()) {
back.setVisible(true);
}
}
});
}
});
}
'scroll()'では、スクロールで 'moveImage()'を呼び出すステージの 'setOnScroll'を設定します。次にmoveImageでリスナーを何度も何度も追加しています... – DVarga
私は質問を更新しました –
画像を 'ScrollPane'に入れて、それをあなたに任せてもらえませんか? – DVarga