2017-04-11 9 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の高さを持っているだろう、ということですが、まだサイズ変更可能なさより小さな高さに。 段階

私が持っているしたい行動は私のGridPaneが608.0よりも小さい高さを持つことができないということです...タイトルバーの高さを含む、608pxになるまで実際には、サイズ変更可能になります。

あなたはそれを行う方法を知っていますか? 事前に感謝します!

+2

それはハックのビットですが、あなたは 'stage.setMinHeight(stage.getHeight()を行うことができます); '(そして同様に幅のために)* after *あなたは' 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()); 
} 
関連する問題