JOptionPane 下拉菜单不显示任何值

问题描述 投票:0回答:1

我正在尝试制作一个地图,将狗的名字映射到狗对象,然后打印出可用狗的列表,并应显示一个下拉菜单,要求用户从上述狗中选择一只。

这是我一直在使用的代码。窗口中存在下拉菜单,但当您按箭头时,没有任何值存在。我在代码中找不到任何明显的错误,任何澄清都会很棒。

 List<Dog> potentialMatches = allDogs.findMatch(dogCriteria);
        if (!potentialMatches.isEmpty()) {
            Map<String, Dog> options = new HashMap<>();
            StringBuilder infoToShow = new StringBuilder("Matches Found! The following dogs meet your criteria: \n");
            for(Dog potentialMatch : potentialMatches){
                infoToShow.append(potentialMatch.getName()).append(" (").append(potentialMatch.getMCNo()).append(") ").append("\n"); //shows the dogs name and microchipnumber next to it(example: Greg (12345678))
            }

            String adopt = (String) JOptionPane.showInputDialog(null, infoToShow +
                    "\n\nPlease select which of (if any) dog you'd like to adopt: ", appName, JOptionPane.QUESTION_MESSAGE,
                    icon, options.keySet().toArray(), ""); //drop down list in this JOptionPane shows no values, its an issue to do with options.keySet().toArray() but im not sure what.
            if(adopt == null) {
                System.exit(0); }

感谢您的帮助。

java intellij-idea joptionpane
1个回答
0
投票

如果您看到,在代码中您已提供

null
作为
showInputDialog
方法的第一个参数。该函数将对话框选项作为该对象的父级,在本例中,您已提供
null
作为父级对象,Swing 将找不到它并且根本不会渲染它。您可能想要给它一个显示框,您想在其中查看您的选项,在本例中是一个对话框下拉框。

© www.soinside.com 2019 - 2024. All rights reserved.