Torayl
Torayl

Reputation: 57

Unresizable ever JavaFX Window

My problem is that my JavaFX window expands further than it should at the bottom, thus showing a weird blank background...

I set stage.setResizable(false) but it doesn't seem to work. I also set

stage.setMinWidth(1280);
stage.setMaxWidth(1280);
stage.setMinHeight(800);
stage.setMaxHeight(800);

I think it's due to some ImageView bigger than the window, but I really would like my window to stick to the max I set and be absolutely not resizable ever.

Here's what it looks like : click here

I also noticed it happens only when I set stage.initStyle(StageStyle.TRANSPARENT). But I don't want my window to be decorated with stage.initStyle(StageStyle.DECORATED)... :(

Thank you in advance for your help. :)

Upvotes: 1

Views: 230

Answers (1)

theKidOfArcrania
theKidOfArcrania

Reputation: 498

Have you tried directly using setWidth and setHeight:

stage.setWidth(1280);
stage.setHeight(800);

I think the setMaxWidth, setMinHeight... etc. only works on a decorated screen because its main purpose is to limit the sizes the user can set the window. Here's my example:

public class FixedWindowSize extends Application
{

    public static void main(String[] args)
    {
        Application.launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception
    {
        Pane p = new Pane();
        p.setBackground(new Background(new BackgroundFill(Color.RED, null, null)));
        p.setMinSize(6000, 6000); //Make this go out beyond window bounds.
        Scene s = new Scene(p);

        primaryStage.setScene(s);
        primaryStage.initStyle(StageStyle.TRANSPARENT);

        //This doesn't work
        //primaryStage.setMinWidth(1280);
        //primaryStage.setMaxWidth(1280);
        //primaryStage.setMinHeight(800);
        //primaryStage.setMaxHeight(800);

        //This should work.
        primaryStage.setWidth(1280);
        primaryStage.setHeight(800);

        primaryStage.show();
    }

}

Upvotes: 1

Related Questions