2017-08-08 22 views
0

私はJavaを初めて使い始めました。これは私のチャットボットコードの一部です。私がcreateQuestions()showMenu()から実行すると動作しないようです。 createQuestion()は、ユーザーが質問を作成し、自分とチャットできるようにします。私のJavaのチャットコードは機能しませんし、なぜ私はわかりません

問題はこちら

ようこそ!

あなたのオプションを選択します。

1)質問に

2を追加)チャット(あなたが最初の質問を追加する必要があります)

3)町

4についての詳細を知っている)、終了

あなた:1

質問の作成...タイプ 'enあなたが停止したい場合はd ' 質問? (私はどのようなユーザー入力を読み、質問として、それを格納する必要があるとして、それはここでは一時停止しません)あなたは

あなたはどのように多くの回答をしたいですか? :

 //Start of ShowMenu(): 
     txtChat.append("\nWelcome!\nChoose your option:"); 
     txtChat.append("\n1)Add Questions\n2)Chat(You need to add question first)\n3)Know more about Towns\n4)Exit\n"); 
     txtChat.append(">>>\n"); 

     txtEnter.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       showMenu(); 
      }//end actionPerformed 

     });//end actionListener 

    }//end TestinChatBot 

    public void showMenu() { 
     String choice; 

     do { 

      switch (choice) { 
       case "1": 
        createQuestions(); 
        break; 
       case "2": 
        startChat(); 
        break; 
       case "3": 
        knowtowns(); 
        break; 
       case "4": 
        txtChat.append("\nFinally! I can play MapleStory! Sayonara!"); 
        System.exit(0); 
        break; 
       default: 
        break; 
      } 

     } while (!choice.equals("4")); 

    } 

    public void createQuestions() { 
     txtChat.append("\nCreating questions...Type 'end' if you wish to stop\n"); 

     do { 

      txtChat.append("Question? \n"); 
      q = txtEnter.getText(); 
      txtChat.append("You: " + q + "\n"); 

      if (!q.contains("end")) { 
       txtChat.append("How many responses do you want? : "); 
       noOfResponses = Integer.parseInt(txtEnter.getText()); 
       txtEnter.setText(""); 
       String r[] = new String[noOfResponses]; 
       if (noOfResponses > 0) { 
        for (int i = 0; i < noOfResponses; i++) { 
         txtChat.append("Response " + (i + 1) + ": "); 
         r[i] = txtEnter.getText(); 
         txtEnter.setText(""); 

        } 
        Chat newChat = new Chat(q, r); 
        addQuestion(newChat); 
        txtChat.append("\n" + Arrays.toString(r)); 
       } else { 
        txtChat.append("Please enter a number bigger than 0"); 

       } 
      } else { 
       showMenu(); 
      } 
     } while (q.equalsIgnoreCase("end") == false); 
    } 

とエラーがあなたが得るこれらの

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "" 
+0

'choice 'はどこに割り当てられますか? –

答えて

1

txtEnter.getText()もし戻っ空白です:

java.lang.NumberFormatException: For input string: "" 

空白を数値に変換することができないため。

したがって、txtEnter.getText()が空白に戻らないことを確認する必要があります。

+0

私は知っているが、私のプログラムはユーザーが入力するのを止めないので、どうすればそれを止めてユーザーに入力させるのだろうか? – Ocean

関連する問題