首页 > 解决方案 > 如何制作具有多个下拉菜单的组合框?

问题描述

我想做像在许多网站上一样的组合框 ala 下拉菜单。

就像是:

https://ugate.files.wordpress.com/2013/06/scroll-menu3.png?w=630

我没有在任何地方发现类似的问题。我不知道从哪里开始。我是否应该使用上下文菜单而不是列表视图来做一个自定义组合框,因为上下文菜单会做一个非常相似的工作

标签: javafxjavafx-8

解决方案


如果我理解正确,为此我会使用 Button - Context Menu - Menu - CheckMenuItem 方法。

ContextMenu contextMenu = new ContextMenu();
Menu menu1 = new Menu("Scrollable Submenu");
Menu menu2 = new Menu("Regular Submenu");
contextMenu.getItems().addAll(menu1, menu2);

for (int i = 1 ; i <= 25; i++) {
    CheckMenuItem checkMenuItem = new CheckMenuItem("Option " + i);
    menu1.getItems().add(checkMenuItem);
}

Button button = new Button();
button.setContextMenu(contextMenu);

BorderPane root = new BorderPane();
root.setTop(new HBox(button));

Scene scene = new Scene(root, 300, 250);

primaryStage.setTitle("Dropdown Menu");
primaryStage.setScene(scene);
primaryStage.show();

button.setOnAction(e -> button.getContextMenu().show(button.getScene().getWindow()));

让我知道这种方法是否符合您的需求。


推荐阅读