2017-04-11 60 views
0

我目前正在構建一個個人用途的小UI應用程序,並且遇到了問題。下面是一些代碼:JavaFX:考慮標題欄高度的舞臺的minHeight

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(); 
} 

,這裏是與assiociated的FXML代碼:

<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> 

所以,我的問題是,在發射時,GridPane將有效有608px的高度,但仍然是可以調整大小到一個較小的高度。事實上,這將是可調整大小,直到階段608px,包括標題欄的高度...

我想有該行爲是我的GridPane不能超過608.0較小的高度。

你知道有什麼方法可以做到嗎? 非常感謝提前!

+2

這是一個黑客攻擊的一位,但你可以做'stage.setMinHeight(stage.getHeight() );'(並且類似於寬度)*在*之後調用'stage.show()'。 –

+0

精彩,它的作品!非常感謝兄弟 – Dayrona

回答

3

由於@James_D在評論中指出,我只是不得不修改我的代碼如下:

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()); 
}