JavaFX边框窗格是否将多个按钮设置为底部?
是否可以将多个JavaFX边框窗格是否将多个按钮设置为底部?,java,javafx,layout,borderpane,Java,Javafx,Layout,Borderpane,是否可以将多个按钮设置为底部(左、中、右) 这就是我所尝试的: private Pane createPane() { BorderPane rootPane = new BorderPane(); rootPane.setTop(createMenueBar()); rootPane.setCenter(createTableView(model.getIssues())); rootPane.setBo
按钮
设置为底部
(左、中、右)
这就是我所尝试的:
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;
}
结果:
如您所见,它只显示最后添加的按钮
。使用JavaFX/BorderPane完成此任务的最佳方法是什么?我对这个很陌生,所以如果你需要更多信息,请告诉我 嵌套布局
将多个按钮聚集到一个列表中。将布局管理器对象放置在边框窗格的底部位置
例如,您可以选择FlowPane
作为布局管理器
FlowPane buttons = new FlowPane() ;
buttons.getChildren().addAll( deleteIssueButton , closeIssueButton , createIssueButton ) ;
BorderPane
仅在底部插槽中放置一个小部件。你希望你的按钮容器就是那个小部件
BorderPane rootPane = new BorderPane();
rootPane.setBottom( buttons ) ;
您使用的Pos.BOTTOM_LEFT
决定了小部件在底部插槽中的位置。BOTTOM\u LEFT
中的BOTTOM
表示插槽中给定空间的底部插槽,而不是边框窗格的底部。这里涉及两个不同的底部
BorderPane.setAlignment( buttons , Pos.CENTER ) ;
我该怎么做?从未使用过布局管理器before@Chris是的,您以前使用过布局管理器。边框窗格
是一个布局管理器。因此,我创建了另一个窗格
,然后将按钮添加到左侧
,中间
右侧
,然后将窗格
添加到底部的根窗格
?@Chris Yes。可以在其他布局管理器中嵌套各种布局管理器。如果你有创造性地思考,你可以用这种方式创建漂亮的表单。但不要发疯,尽可能地最小化嵌套布局。但一定要将它们嵌套在需要的地方,以获得有效的布局。@Chris阅读了一些关于JavaFX/OpenJFX布局管理器的教程。我见过一些好的。视觉截图将为您带回概念。您可能会发现类似的教程-您也可以浏览这些教程以收集想法,因为一些布局管理器在概念上非常相似(JavaFX中的BorderPane
是Swing中BorderLayout
的副本),但忽略Swing代码的详细信息。