Случай переключения рассматривается как дублирующая метка с JOptionPane.CANCEL_OPTION - PullRequest
0 голосов
/ 30 октября 2018

В настоящее время я использую IntelliJ, и появляется ошибка «Дублирующая метка« 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);
    }
}

1 Ответ

0 голосов
/ 07 ноября 2018

Это происходит потому, что вы не можете определить два случая с одинаковым значением в операторе 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, так что вы можете изменить свой регистр в соответствии с другими значениями, чтобы вы больше не получали эту повторяющуюся ошибку регистра.

...