2017-04-11 1 views
0

Ich baue gerade eine kleine UI-Anwendung für den persönlichen Zweck und ich stieß auf ein Problem. Hier ist ein Code:JavaFX: stage's minHeight unter Berücksichtigung der Höhe der Titelleiste

public void start(Stage stage) throws Exception { 
    Parent root = FXMLLoader.load(getClass().getClassLoader().getResource("ui.fxml")); 

    Scene scene = new Scene(root); 

    stage.setTitle("My app"); 
    stage.setScene(scene); 
    stage.setMinHeight(608.0); 
    stage.setMinWidth(1080.0); 

    stage.show(); 
} 

Und hier ist der FXML Code assiociated mit:

<GridPane gridLinesVisible="true" minHeight="608.0" minWidth="1080.0" xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1" fx:controller="my.package.MyClass"> 
    <rowConstraints> 
     <RowConstraints minHeight="500.0" prefHeight="500.0" vgrow="ALWAYS" /> 
     <RowConstraints maxHeight="108.0" minHeight="108.0" prefHeight="108.0" vgrow="NEVER" /> 
    </rowConstraints> 
</GridPane> 

Also, mein Problem ist, dass beim Start der GridPane effektiv eine Höhe von 608px haben wird, ist aber noch resizable zu einer geringeren Höhe. Tatsächlich wird es resizable sein, bis die Bühne608px sein wird, einschließlich der Höhe der Titelleiste ...

Das Verhalten, das ich haben möchte, ist, dass meine GridPane nicht eine geringere Höhe als 608.0 haben kann.

Kennen Sie irgendwelche Möglichkeiten, das zu tun? Vielen Dank im Voraus!

+2

Es ist ein bisschen wie ein Hack, aber man kann 'stage.setMinHeight (stage.getHeight() tun); '(und ähnlich für die Breite) * nach * nennen Sie' stage.show() '. –

+0

Wunderbar, es funktioniert! Vielen Dank, Alter – Dayrona

Antwort

3

Wie @James_D in einem Kommentar darauf hingewiesen, hatte ich einfach meinen Code wie folgt zu ändern:

public void start(Stage stage) throws Exception { 
    Parent root = FXMLLoader.load(getClass().getClassLoader().getResource("ui.fxml")); 

    Scene scene = new Scene(root); 

    stage.setTitle("My app"); 
    stage.setScene(scene); 

    stage.show(); 

    stage.setMinHeight(stage.getHeight()); 
    stage.setMinWidth(stage.getWidth()); 
} 
Verwandte Themen