JavaFX BorderPane 将多个按钮设置为底部?

JavaFX BorderPane set multiple buttons to Bottom?

是否可以将多个Buttons设置为Bottom(左、中、右)?

这是我试过的:

    private Pane createPane() {
        BorderPane rootPane = new BorderPane();
        rootPane.setTop(createMenueBar());
        rootPane.setCenter(createTableView(model.getIssues()));
        
        rootPane.setBottom(createDeleteIssueButton());  
        rootPane.setBottom(createCloseIssueButton());
        rootPane.setBottom(createCreateNewIssueButton());
        
        BorderPane.setAlignment(deleteIssueButton, Pos.BOTTOM_LEFT);
        BorderPane.setAlignment(closeIssueButton, Pos.BOTTOM_CENTER);
        BorderPane.setAlignment(createIssueButton, Pos.BOTTOM_RIGHT);
        return rootPane;
    }

结果:

如您所见,它只显示最后添加的 Button。使用 JavaFX/BorderPane 完成这项工作的最佳方法是什么?我对此很陌生,所以如果您需要更多信息,请告诉我!

嵌套布局

将多个按钮收集到一个 layout manager。将该布局管理器对象放在 BorderPane.

的底部位置

例如,您可以选择 FlowPane 作为布局管理器。

FlowPane buttons = new FlowPane() ;
buttons.getChildren().addAll( deleteIssueButton , closeIssueButton , createIssueButton ) ;

BorderPane 仅在底部插槽中放置一个小部件。您希望您的按钮容器成为那个小部件。

BorderPane rootPane = new BorderPane();
rootPane.setBottom( buttons ) ;

您对 Pos.BOTTOM_LEFT 等的使用决定了小部件在底部插槽中的放置位置。 BOTTOM_LEFT 中的 BOTTOM 表示槽中给定 space 的底部槽,而不是 BorderPane 的底部。这里涉及两种不同的底部。

BorderPane.setAlignment( buttons , Pos.CENTER ) ;