如何使组合框具有多个下拉菜单?

时间:2019-01-04 23:24:53

标签: javafx javafx-8

我想像在许多网站上一样使combobox ala下拉菜单

  • 类别A
    • aa
    • ab
    • ac
  • 类别B
    • ba
    • bb
    • bc

类似的东西:

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

我在任何地方都没有发现类似的问题。而且我不知道从哪里开始。我应该使用contextmenu而不是listview做一个自定义组合框吗,因为contextmenu会做一个非常相似的工作

1 个答案:

答案 0 :(得分:0)

如果我理解正确,那么我将使用按钮-上下文菜单-菜单-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()));

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