AnchorPane shows a white border when setResizable is false (JavaFX)


Question

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.

Code:

 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>

enter image description here

1
0
2/7/2013 7:18:03 PM

Accepted Answer

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.

1
7/15/2014 10:10:18 AM

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.


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon