0
我正在使用JavaFX和CSS製作的應用程序。我已經達到了必須在scrollPane(它在GridPane中)內顯示圖片的地步。我需要放大這張照片。按照預期,我成功地使用了我的觸控板的多點觸控功能。JavaFX 2.2 - 如何適應在scrollPane內縮放後的滾動?
但是,當放大時,滾動條不顯示,或它保持它在加載的方式。 (根據圖片大小顯示(或不顯示)條)
縮小時會發生同樣的情況。
圖片將爲自己討論。
您可以在這裏注意到,因爲圖片太長,會顯示垂直滾動條。
滾動條未顯示。除了垂直狀態相同外,
你可以很容易地看到縮小時,這是同樣的事情。
所以。如何設置條形以適應縮放?我希望能夠使用觸控板「移動」圖片。 (滾動條與多點觸摸手勢運行和它的作品。)
這裏是我的代碼的一部分:
Tab newTab = new Tab(file.getName());
newTab.setClosable(true);
// Create ImageView of Picture
ImageView imageView = new ImageView();
// Add ImageView to tab
scrollPane = new ScrollPane();
/*
* ZOOM
*/
zoomProperty = new SimpleDoubleProperty(200);
zoomProperty.addListener(new InvalidationListener() {
@Override
public void invalidated(Observable arg0) {
imageView.setFitWidth(zoomProperty.get() * 4);
imageView.setFitHeight(zoomProperty.get() * 3);
}
});
scrollPane.setOnZoom(new EventHandler<ZoomEvent>() {
@Override
public void handle(ZoomEvent event) {
imageView.setScaleX(imageView.getScaleX() * event.getZoomFactor());
imageView.setScaleY(imageView.getScaleY() * event.getZoomFactor());
event.consume();
}
});
scrollPane.setOnZoomFinished(new EventHandler<ZoomEvent>() {
@Override
public void handle(ZoomEvent event) {
// I want to add something here but don't know what.
event.consume();
}
});
/*
* END ZOOM
*/
imageView.setImage(new Image(file.toURI().toString()));
imageView.preserveRatioProperty().set(true);
scrollPane.setContent(imageView);
newTab.setContent(scrollPane);
TabView.addTab(newTab);
}
非常感謝你。如果我忘記了一些,請不要猶豫,要求確認或其他信息。
也使用'imageView.setSmooth(true);' – GOXR3PLUS