Switch Case 被视为具有 JOptionPane.CANCEL_OPTION 的重复标签
Switch Case Considered as a Duplicate Label with JOptionPane.CANCEL_OPTION
我目前正在使用 IntelliJ,当我在我的菜单中放置一个用于按下“取消”选项的案例时,出现 "Duplicate label '2'" 错误。
import javax.swing.*;
public class Main {
public static void main(String[] args){
int choice=0;
Object menu= "1. Name Constructor\n" +
"2. Pretty Printing of text\n" +
"3. FLAMES\n" +
"4. Your Superhero name!\n" +
"5. return to the main menu\n";
do {
choice = Integer.parseInt(JOptionPane.showInputDialog(null,
"S T R I N G M A N I P U L A T I O N M E N U\n" +
menu, "Menu", 1));
switch (choice) {
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case JOptionPane.CANCEL_OPTION:
break;
default:
JOptionPane.showMessageDialog(null,"Enter a valid choice.","Error",1);
break;
}
}while(choice!=5);
}
}
发生这种情况是因为您不能在 switch 语句中定义两个具有相同值的 case。
如果查看 JOptionPane 内部,您会看到 CANCEL_OPTION
值为 2。
这是显示值的 JOptionPane class 部分:
/** Return value from class method if CANCEL is chosen. */
public static final int CANCEL_OPTION = 2;
因为你已经有一个 case 2:
和 CANCEL_OPTION
还有 returns 2,你必须改变它。例如,如果您更改为 case 6:
,它将起作用。试一试。
here 你可以看到 JOptionPane 的所有值,所以你可以根据其他值修改你的案例,这样你就不会再得到这个重复的案例错误了。
我目前正在使用 IntelliJ,当我在我的菜单中放置一个用于按下“取消”选项的案例时,出现 "Duplicate label '2'" 错误。
import javax.swing.*;
public class Main {
public static void main(String[] args){
int choice=0;
Object menu= "1. Name Constructor\n" +
"2. Pretty Printing of text\n" +
"3. FLAMES\n" +
"4. Your Superhero name!\n" +
"5. return to the main menu\n";
do {
choice = Integer.parseInt(JOptionPane.showInputDialog(null,
"S T R I N G M A N I P U L A T I O N M E N U\n" +
menu, "Menu", 1));
switch (choice) {
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case JOptionPane.CANCEL_OPTION:
break;
default:
JOptionPane.showMessageDialog(null,"Enter a valid choice.","Error",1);
break;
}
}while(choice!=5);
}
}
发生这种情况是因为您不能在 switch 语句中定义两个具有相同值的 case。
如果查看 JOptionPane 内部,您会看到 CANCEL_OPTION
值为 2。
这是显示值的 JOptionPane class 部分:
/** Return value from class method if CANCEL is chosen. */
public static final int CANCEL_OPTION = 2;
因为你已经有一个 case 2:
和 CANCEL_OPTION
还有 returns 2,你必须改变它。例如,如果您更改为 case 6:
,它将起作用。试一试。
here 你可以看到 JOptionPane 的所有值,所以你可以根据其他值修改你的案例,这样你就不会再得到这个重复的案例错误了。