我想将我的 SplitPane 分隔器设置为“特定”起始位置,因此考虑到窗口的组件。
有一个固定大小的 TableView,但窗口大小可以不同。所以我想在开始时设置分隔线位置,以便表格完全可见,并且在它旁边是分隔线。
到目前为止,我在控制器中有以下代码public void initialize()
:
@FXML
SplitPane splitPane;
@FXML
TreeTableView treeTable;
public void initialize() {
getStage().addEventHandler(WindowEvent.WINDOW_SHOWN, new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent event) {
double tableWidth = treeTable.getWidth();
double stageWidth = getStage().getWidth();
splitPane.setDividerPositions(tableWidth / stageWidth);
}
});
}
FXML:
<SplitPane fx:id="splitPane">
<items>
<TreeTableView fx:id="treeTable" prefWidth="280">
<!-- table -->
</TreeTableView>
<AnchorPane fx:id="anchorPane">
<!-- anchor pane -->
</AnchorPane>
</items>
</SplitPane>
但它不起作用,因为此时 Stage 为空。