2017-04-11 88 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()); 
}