【问题标题】:JavaFX BorderPane set multiple buttons to Bottom?JavaFX BorderPane 将多个按钮设置为底部?
【发布时间】:2020-10-31 18:41:00
【问题描述】:

是否可以将多个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 完成此任务的最佳方法是什么?我对此很陌生,所以如果您需要更多信息,请告诉我!

【问题讨论】:

    标签: java javafx layout borderpane


    【解决方案1】:

    嵌套布局

    将多个按钮集中到一个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 ) ;
    

    【讨论】:

    • 我该怎么做?以前从未使用过布局管理器
    • @Chris 是的,您之前确实使用过布局管理器。 BorderPane 是一个布局管理器。
    • 所以我创建另一个 Pane ,然后将按钮添加到 leftcenterright 然后将 Pane 添加到底部到 rootPane?
    • @Chris 是的。您可以在其他布局管理器中嵌套各种布局管理器。如果您创造性地思考,您可以通过这种方式创建漂亮的表单。但不要发疯,尽可能减少嵌套布局。但是一定要在需要的地方嵌套它们以获得有效的布局。
    • @Chris 阅读一些关于 JavaFX/OpenJFX 布局管理器的教程。我见过一些不错的。视觉截图将为您带来概念。你可能会发现Swing 的类似教程——你也可以浏览这些以收集想法,因为一些布局管理器在概念上非常相似(JavaFX 中的 BorderPane 是 Swing 中 BorderLayout 的副本),但忽略Swing 代码详细信息。
    猜你喜欢
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-10
    • 2020-03-19
    相关资源
    最近更新 更多