2012-04-18 35 views
1

我对Java很新颖。我希望用户能够通过点击提交分别输入4个不同的输入。我正在使用for循环进行计数,但我不知道如何让用户多次输入他们的答案。 for循环只是一次重复。我使用数组来保存用户的答案。这是我的代码的一部分。如果您有任何问题或需要更多解释,我将确定。解释更将Action用户输入到JTextField for循环中Action Listener

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'作进一步的输入。 – 2012-04-18 04:48:54

回答

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("") 
    } 
} 

这样的循环是隐式由ActionListener的管理的计数器:按提交计数每次由1与正确答案递增放置在数组内。当然你应该在提交第四个答案时做一些事情,比如禁用提交按钮。

+1

+1,我会用这个答案 - ) – 2012-04-18 04:49:10

+0

同意,另请参阅本[方法](http://stackoverflow.com/a/8703807/230513)。 – trashgod 2012-04-18 06:15:51

相关问题