javafx - 如何制作具有多个下拉菜单的组合框?
问题描述
我想做像在许多网站上一样的组合框 ala 下拉菜单。
- 甲类
- 啊
- 抗体
- 交流
- B类
- 巴
- bb
- 公元前
就像是:
我没有在任何地方发现类似的问题。我不知道从哪里开始。我是否应该使用上下文菜单而不是列表视图来做一个自定义组合框,因为上下文菜单会做一个非常相似的工作
解决方案
如果我理解正确,为此我会使用 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()));
让我知道这种方法是否符合您的需求。
推荐阅读
- azure - Can't Install Package Azure.Storage.Blobs.12.5.1 in VS2015
- python - Python 语句在 Django 中无法正常工作
- javascript - 交替排列
- python - 如何仅从其他 py 文件中导入变量?
- django - 选择具有最大字段/列值的实例/行,每个字段/列(分组依据)
- onedrive - 如何删除与 Onedrive 同步但拒绝停止同步的文件夹?
- google-apps-script - 根据匹配今天的日期优化脚本以“仅粘贴值”的建议
- java - 如何使用 Mockito 或 PowerMock 将 org.slf4j.Logger 更改为打印到控制台
- mysql - 第 1 行被截断;它包含的数据多于输入列
- python - 如果输入非法,则继续请求输入,对于给定的尝试