Это происходит потому, что вы не можете определить два случая с одинаковым значением в операторе switch.
Если вы загляните внутрь JOptionPane, вы увидите, что значение CANCEL_OPTION
равно 2.
Вот часть класса JOptionPane, которая показывает значение:
/** Return value from class method if CANCEL is chosen. */
public static final int CANCEL_OPTION = 2;
Поскольку у вас уже есть case 2:
, а CANCEL_OPTION
также возвращает 2, вы должны изменить его. Например, если вы измените на case 6:
, это будет работать. Попробуйте.
здесь вы можете видеть все значения, которые имеет JOptionPane, так что вы можете изменить свой регистр в соответствии с другими значениями, чтобы вы больше не получали эту повторяющуюся ошибку регистра.