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

标签 java javafx layout borderpane

是否可以将多个Button设置为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;
    }

结果:

enter image description here

如您所见,它只显示最后添加的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 表示槽内给定空间的底部槽,而不是 BorderPane 的底部。这里涉及两个不同的底部。

BorderPane.setAlignment( buttons , Pos.CENTER ) ;

关于JavaFX BorderPane 将多个按钮设置为底部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62844167/

相关文章:

java - 反射在 Java 中有哪些适当和不适当的用途?

java - 无法启动基于 Mavericks 构建的应用程序

java - 如何为我的 "home screen"Android studio 设置临时片段

Java Android : the button does not work after returning to the first layout

html - 调整浏览器大小时,一页网站页面会移动

java - 在 SQLite 中使用 IN 子句

java - java中字符串中的单词大写但跳过数字和多余的空格或符号

Java 堆空间(java.lang.OutOfMemoryError)

JavaFX - 强制从 TextField 输入大写

JavaFX:带有关闭按钮的 HBox