My problem is that when I use setResizable(false) one white border is shown on my scene. When I don't set it false works fine, but I need to set it false.
Scene scene = new Scene(new StackPane()); LoginManager loginManager = new LoginManager(scene); loginManager.showLoginScreen(); primaryStage.setResizable(false); primaryStage.setScene(scene); primaryStage.show();
My ImageView is inside of my AnchorPane
<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="900.0" xmlns:fx="http://javafx.com/fxml" fx:controller="br.com.facilit.target.app.desktop.view.MainViewController"> <children> <ImageView id="background" fitHeight="600.0" fitWidth="900.0" pickOnBounds="true"> <image> <Image url="@../images/background.jpg" preserveRatio="true" smooth="true" /> </image>
I had the same issue, I resolved in this way:
primaryStage.setScene(scene); primaryStage.setWidth(900); primaryStage.setHeight(600); primaryStage.setResizable(false); primaryStage.show();
You have to set the scene before setting the resizable property and set the width/height manually. This has solved my problem.
After try too many things, I discovered how to fix it.
I don't know why but when you set resible false, the screen automaticaly gains a extra space below and in the right side. To fix it, you should set the image background bigger than screen width and height, for example if you are using 900x600 in your anchor pane, you should set your image to 920x620.
One more time, I don't know why is it happening, but this was the only way that I've found to fix it whitout using css.