Это приложение JavaFX.Существует imageView, вложенный в область прокрутки, и перед загрузкой / отображением изображения видны полосы прокрутки.Однако, когда пользователь загружает изображение или нажимает / увеличивает изображение, полосы прокрутки исчезают.Это оставляет видимой только часть изображения.
Я очень новый разработчик, поэтому я могу использовать неправильные методы для изменения размера изображения.Я также мог бы вызывать метод не на том объекте (в этом случае действует сам imageView, а не объект изображения, нарисованный на нем).
Вот метод масштабирования, который я построил:
// a method that allows user to zoom in and out on the image
@FXML
private void zoomImage(MouseEvent event) {
if (imageDisplay != null) {
if (imageDisplay.getScaleX() == 1.0 & imageDisplay.getScaleY()
== 1.0) {
imageDisplay.setScaleX(3.0);
imageDisplay.setScaleY(3.0);
} else {
imageDisplay.setScaleX(1.0);
imageDisplay.setScaleY(1.0);
}
} else {
return;
}
}
(Вот FXML для imageView и Scroll Pane, оба из которых находятся в VBox)
<ScrollPane>
<content>
<ImageView fx:id="imageDisplay" fitHeight="300.0" fitWidth="650.0"
onDragDropped="#handleImageDrop" onDragOver="#handleImageDrag"
onMouseClicked="#zoomImage" pickOnBounds="true" preserveRatio="true" />
</content>
</ScrollPane>
Я ожидаю, что полосы прокрутки останутся видимыми после загрузки и увеличения изображения в.