如何使用滚动窗格JavaFX显示比屏幕大的图像
在全屏应用程序中,如何使用滚动窗格显示比屏幕大的图像?我有一个大约8000x3800像素的图像,我希望能够移动并与整个图像交互,而无需调整其大小。如果你想知道我的代码的细节或一般情况,请询问如何使用滚动窗格JavaFX显示比屏幕大的图像,java,javafx,imageview,scrollpane,Java,Javafx,Imageview,Scrollpane,在全屏应用程序中,如何使用滚动窗格显示比屏幕大的图像?我有一个大约8000x3800像素的图像,我希望能够移动并与整个图像交互,而无需调整其大小。如果你想知道我的代码的细节或一般情况,请询问 public class SourceCodeVersion8 extends Application{ public static void main(String[] args) { launch(args); } @Override public v
public class SourceCodeVersion8 extends Application{
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
AnchorPane mapAnchorO = addMapAnchor();
Scene mapScene = new Scene(mapAnchorO);
primaryStage.setScene(mapScene);
primaryStage.setFullScreen(true);
primaryStage.setResizable(false);
primaryStage.show();
}
//Creates an AnchorPane for the map
private AnchorPane addMapAnchor()
{
AnchorPane mapAnchor = new AnchorPane();
ScrollPane mapScrollO = addMapScroll();
mapAnchor.getChildren().add(mapScrollO);
AnchorPane.setLeftAnchor(mapScrollO, 0.0);
AnchorPane.setTopAnchor(mapScrollO, 0.0);
return mapAnchor;
}
//Creates an ImageView for the map
private ImageView addMapView()
{
Image mapImage = new Image("WorldProvincialMap-v1.01.png");
ImageView mapView = new ImageView(mapImage);
return mapView;
}
//Creates a scrollPane for the map
private ScrollPane addMapScroll()
{
ScrollPane mapScroll = new ScrollPane();
ImageView mapViewO = addMapView();
mapScroll.setContent(mapViewO);
mapScroll.setPannable(true);
return mapScroll;
}
}
您只为
滚动窗格
设置了4个定位点中的2个,这就是为什么滚动窗格
从未调整大小,只是调整到允许显示整个图像的大小
因此,不需要滚动条,也无法进行平移
您还可以通过设置右侧和底部锚定来修复此问题。或者直接使用滚动窗格
作为场景的根目录
private AnchorPane addMapAnchor() {
AnchorPane mapAnchor = new AnchorPane();
ScrollPane mapScrollO = addMapScroll();
mapAnchor.getChildren().add(mapScrollO);
AnchorPane.setLeftAnchor(mapScrollO, 0.0);
AnchorPane.setTopAnchor(mapScrollO, 0.0);
AnchorPane.setBottomAnchor(mapScrollO, 0.0);
AnchorPane.setRightAnchor(mapScrollO, 0.0);
return mapAnchor;
}
我有,但它不允许平移,即使我启用了该选项。此外,即使我启用了该选项,它也不会显示滚动条。已编辑问题以包含我的代码。