FXML prefHeight和prefWidth vs场景的高度和宽度

时间:2015-09-29 09:22:51

标签: javafx fxml

在我的fxml文件中,根元素如下所示:

<SplitPane dividerPositions="0.5" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="900.0" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.AbweichungenKonfigurationController">
   ...
</SplitPane>

调用fxml文件的类看起来像这样:

现在,fxml文件中定义的大小:

prefHeight="600.0" prefWidth="900.0"

被场景大小覆盖:

primaryStage.setScene(new Scene(root, 1000, 800));

出现的窗口具有在场景的构造函数中定义的大小!

有没有机会使用fxml文件中定义的大小?或者我该如何处理这个问题?

1 个答案:

答案 0 :(得分:0)

Scene将强制其根取Scene的大小,而不管其min / pref / max大小。

尝试将SplitPane包裹在StackPane中,StackPane没有大小限制。 StackPane将尊重SplitPane的首选尺寸:

<StackPane xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.AbweichungenKonfigurationController">

    <SplitPane dividerPositions="0.5" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="900.0" >
       ...
    </SplitPane>

</StackPane>