JavaFX:GridPane计算不正确的列宽

JavaFX:GridPane计算不正确的列宽,javafx,fxml,gridpane,Javafx,Fxml,Gridpane,我希望GridPane根据该列中所有元素的最大首选宽度来计算每列的默认宽度。但是,在我的代码中,它似乎计算的宽度太小,导致列中的一个标签被截断 这是我的“cashflowform.fxml”: 结果: 正如您所见,第一列太小,无法完全显示我的“安默尔贡”标签。为什么会这样?解决这个问题的最佳方法是什么 PS:作为一个附带问题,如果有人关心的话,我还注意到我添加的“框”作为标签/字段和按钮之间的空格填充,当你仔细观察时,它实际上显示为一条白色的竖线。看来盒子不是用来做这个的合适的东西。我只是从J

我希望GridPane根据该列中所有元素的最大首选宽度来计算每列的默认宽度。但是,在我的代码中,它似乎计算的宽度太小,导致列中的一个标签被截断

这是我的“cashflowform.fxml”:

结果:

正如您所见,第一列太小,无法完全显示我的“安默尔贡”标签。为什么会这样?解决这个问题的最佳方法是什么

PS:作为一个附带问题,如果有人关心的话,我还注意到我添加的“框”作为标签/字段和按钮之间的空格填充,当你仔细观察时,它实际上显示为一条白色的竖线。看来盒子不是用来做这个的合适的东西。我只是从JavaFX开始,与Swing的“Box.createVerticalGlue()”相对应的是什么

PPS:在任何人询问之前:在我的代码中看到的“FXMLLoader”不是javafx.fxml.FXMLLoader,而是一个自定义实用程序类


谢谢大家!

我发现了。背景

minWidth="-Infinity"
因为-Infinity实际上解析为Region/Control.USE_PREF_SIZE

我不知道为什么有必要这样做,因为根据GridPane的文档,使用首选大小应该是列大小调整的默认行为。对我来说,这样做似乎是一种恶作剧。但无论如何,这解决了问题

    primaryStage.setScene(new Scene(FXMLLoader.loadFxmlRoot("cashflowform")));
    primaryStage.show();
minWidth="-Infinity"