可调整大小的布局如何工作
JavaFX中可调整大小的项目的大小由放置项目的布局管理器进行管理.
你需要做什么
对于您的特定问题,您需要设置GridPane大小限制来管理您放置在网格中的TableView.
看看GridPane.hgrow和GridPane.vgrow约束我添加在TableView上:
GridPane.columnIndex="0"
GridPane.columnSpan="1"
GridPane.hgrow="ALWAYS"
GridPane.vgrow="ALWAYS"
GridPane.rowIndex="0">
FXML只是反映了Java API,所以你也可以在Java源中做同样的事情,即GridPane.setHGrow(node,priority).虽然,如果您使用FXML进行布局,则建议在FXML中定义布局限制.
重构样品
我在Scene Builder 2中加载了FXML,并设置了相应的约束,当我使用Scene Builder的预览功能时,它似乎自动调整大小.
一些忠告
您将TableView放置在GridPane中.在您的情况下使用GridPane有点奇怪,因为GridPane只会在GridPane中放置一个节点.只需将TableView直接放置在BorderPane的中心,或者使用一个更简单的布局父类(如StackPane)就可以正常工作.但也许这只是一个更复杂的UI的一些削减版本,所以也许这就是为什么你使用了一个GridPane.
进一步阅读
如果您有时间,请阅读Node,Pane,Group和GridPane javadoc中的JavaFX中的布局,并尝试这个小小的layout