如何通过javafx(tabpane,menebutton)将一些具有不同默认布局的UI集成在一起?

如何通过javafx(tabpane,menebutton)将一些具有不同默认布局的UI集成在一起?,java,javafx,Java,Javafx,如图所示:我使用场景生成器在BorderPane顶部创建了一个HBox。HBox包含两种类型的UI:菜单按钮和选项卡窗格 当前的样式是:当我单击tabpane时,tabpane将在菜单按钮下留下一个空白区域,该区域在HBox中未使用 我的要求是:当我单击tabpan时,tabpane可以使用这个区域。我发现一个很好的例子:EXCEL。请参见EXCEL的菜单栏。 “文件”与我的菜单按钮类似(也有一些不同,excel“文件”在单击时显示一个窗格,我的菜单按钮显示一个菜单列表), “开始”、“插入

如图所示:我使用场景生成器在BorderPane顶部创建了一个HBox。HBox包含两种类型的UI:菜单按钮和选项卡窗格

当前的样式是:当我单击tabpane时,tabpane将在菜单按钮下留下一个空白区域,该区域在HBox中未使用

我的要求是:当我单击tabpan时,tabpane可以使用这个区域。我发现一个很好的例子:EXCEL。请参见EXCEL的菜单栏。 “文件”与我的菜单按钮类似(也有一些不同,excel“文件”在单击时显示一个窗格,我的菜单按钮显示一个菜单列表), “开始”、“插入”与我的选项卡窗格类似。 如果我解释不清楚,请参考EXCEL,WORD我们的OUTLOOK。 谢谢

我怎样才能解决这个问题

  • 我应该自定义选项卡窗格或菜单按钮的UI吗
  • 如果有其他用户界面可以实现这一点,我只是不知道? 非常感谢

  • 在FXMLController中尝试以下操作:

    // Tells the HBox to expand the tabPane whenever possible.
    HBox.setHgrow(tabPane, Priority.ALWAYS);
    
    // If invisible, menuButton will not take space on the screen
    menuButton.managedProperty().bind(menuButton.visibleProperty());
    
    // A click on the tabPane will make menuButton invisible, freeing room for the tabPane to take over the rest of the HBox
    tabPane.setOnMouseClicked(event -> menuButton.setVisible(false));