是否可以将多个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;
}
结果:
如您所见,它只显示最后添加的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/