2012-04-18 13 views
1

私はまったく新しいJavaです。私は、ユーザがsubmitをクリックすることで4つの異なる入力を別々に入力できるようにしたい。私はforループを使用してカウントしていますが、ユーザーに複数回答えを入力させる方法はわかりません。 forループはすべてを一度に繰り返すだけです。私はユーザーの答えを保持するために配列を使用しています。ここに私のコードの一部です。ご質問がある場合や、より多くの説明が必要な場合は、私は紛失します。あなたはボタンのクリックで一度に実行されるActionListener、ループを配置ので、これは動作しません。もっとアクションリスナーでforループのJTextFieldにユーザー入力を受け取りました

private void Question1() 
{ 
    int count = 1; 
      QuestionsPanel.add(new JLabel(Q1.getQuestion())); 
    QuestionsPanel.add(new JLabel(Arrays.toString(mans1))); 

    AnswerField = new JTextField(10); 
    AnswerPanel.add(AnswerField); 

    Submit = new JButton("Submit"); 
    AnswerPanel.add(Submit); 
    Submit.addActionListener(this); 

} 

public void actionPerformed(ActionEvent e) 
{ 
    if ((e.getSource() == Submit) && count == 0) 

    { 
     int value = Integer.parseInt(AnswerField.getText()); 

     for (int i = 0; i < 4; i++) 
     { 

      if (value == -1) break; 
      ans[i] = value - 1; 
      AnswerField.setText(""); 


     } 
+0

ループが必要な理由、通常のカウンタがこのタスクを実行できない理由についてもう少し説明してください。その 'counter == 4'のときだけ、さらに入力するために' JTextField'を無効にすることができます。 –

答えて

2

を説明します。あなたは何をすべき

は、現在の答えループが暗黙のうちのActionListenerによって管理されている。このように、どこか

int count = 0; 

public void actionPerformed(ActionEvent e) { 
    if ((e.getSource() == Submit) && count < 4) { 
    int value = Integer.parseInt(AnswerField.getText()); 

    if (value == -1) break; 
    ans[count++] = value - 1; 
    AnswerField.setText("") 
    } 
} 

のカウンタを維持することです:あなたは、カウントを提出押すたびに1と正解だけインクリメントされ配列の内側に配置されます。もちろん、4番目の回答を提出すると、送信ボタンを無効にするなどの操作を行う必要があります。

+1

+1、私はこの答えで行くだろう - ) –

+0

合意して、この[アプローチ](http://stackoverflow.com/a/8703807/230513)も参照してください。 – trashgod

関連する問題