我正在尝试创建一个输入对话框,提示用户选择与第一支球队比赛的第二支球队。用户之前选择的球队无法再次显示,如果用户输入了不是球队选项的内容,则需要进行错误检查。我正在使用一个名为Team的类从数据文件中获取球队名称。我已经创建了选择第一支球队的方法。这是所需的输出:The message for the user to select two teams
我创建了一个while循环,如果用户再次输入第一个团队或其他非团队选项,该循环将继续运行。我为每个团队创建了不同的JOptionPane输入对话框,并认为用户可以输入任何内容,代码将检查其是否有效。**但是,当程序运行时,它完全跳过了这个方法。***联赛 * 是一系列有输赢的球队和他们的花名册这个方法有两个形式参数,分别接受联赛数组和用户选择的第一支球队team 1,这个方法应该返回第二支球队的选择。
这是我目前的代码:
for (int i = 0; i < league.length; i++) {
while (!team2.equalsIgnoreCase(league[i].getName()) && team2.equals(team1)) {
if (team1.equals(league[0].getName())) {
display = JOptionPane.showInputDialog("Select a team to play the " + team1 + "\n\n"
+ "-" + league[1].getName() + "\n"
+ "-" + league[2].getName() + "\n"
+ "-" + league[3].getName() + "\n\n");
} else if (team1.equals(league[1].getName())) {
display = JOptionPane.showInputDialog("Select a team to play the " + team1 + "\n\n"
+ "-" + league[0].getName() + "\n"
+ "-" + league[2].getName() + "\n"
+ "-" + league[3].getName() + "\n\n");
} else if (team1.equals(league[2].getName())) {
display = JOptionPane.showInputDialog("Select a team to play the " + team1 + "\n\n"
+ "-" + league[0].getName() + "\n"
+ "-" + league[1].getName() + "\n"
+ "-" + league[3].getName() + "\n\n");
} else if (team1.equals(league[3].getName())) {
display = JOptionPane.showInputDialog("Select a team to play the " + team1 + "\n\n"
+ "-" + league[0].getName() + "\n"
+ "-" + league[1].getName() + "\n"
+ "-" + league[2].getName() + "\n\n");
} else {
popup("Sorry, I couldn't find " + team2 + ", please try again...");
}
}
}
任何帮助都很好!
1条答案
按热度按时间v6ylcynt1#
您可能想尝试一些不同的东西。也许使用两个JComboBox来保存团队名称。当团队名称从第一个ComboBox中选定后,将该名称从第二个ComboBox中删除。第二个ComboBox甚至在第一个ComboBox具有选定名称之前不会变为活动状态。“确定”按钮在第二个ComboBox具有选定名称之前不会变为启用状态。这在下面的GIF中进行了演示:
下面是可运行的代码。请务必阅读代码中的所有注解: