Простая программа, использующая JOptionPane для навигации по опциям, продолжает переписывать ArrayList - PullRequest
0 голосов
/ 05 июня 2018

Я определил ArrayList qList в своем конструкторе как

ArrayList<Question> qList = new ArrayList<Question>();

За ним следует цикл while, который позволяет вам перемещаться по некоторым Jpanes t

while(!menuDialog.toLowerCase().equals("end"))
    {
        if(menuDialog.toLowerCase().equals("a"))
        {
            ques = JOptionPane.showInputDialog("Enter your question now.");
            ans = JOptionPane.showInputDialog("Enter your answer now.");
            Question q = new Question(ques, ans);
            qList.add(q);
            System.out.println(qList.size());
        }
        else if(menuDialog.toLowerCase().equals("b"))
        {
            for(int i = 0; i < qList.size(); i++)
            {
                System.out.println(qList.get(i).getQuestion() + "\t" + qList.get(i).getAnswer());
            }
            menuDialog = "end";
        }
    else if(menuDialog.toLowerCase().equals("c"))
        {
        }
        else
        {
            String error = new String();
            error = JOptionPane.showInputDialog("Incorrect input, please enter a proper variable.");
            menuDialog = JOptionPane.showInputDialog(menu);
        }
}

Когда я нажимаю "A«чтобы направить туда, где я могу добавить вопрос, мне дают правильные подсказки.Затем я добавляю любой ввод, и он возвращает меня в menuDialog, где я затем ввожу «B».Это должно завершить цикл и представить список в консоли, а это не так.

Я также добавил проверку размера в A, которая доказывает, что он перезаписывается, потому что он всегда печатает только «1».

Я сделал что-то особенно глупое?

...