1

私はJavaの初心者です。[送信] をクリックすることで、ユーザーが 4 つの異なる入力を個別に入力できるようにしたいと考えています。for ループを使用してカウントしていますが、ユーザーに回答を複数回入力させる方法がわかりません。for ループは、一度にすべて繰り返されます。ユーザーの回答を保持するために配列を使用しています。これが私のコードの一部です。質問がある場合、またはさらに説明が必要な場合は、断ります。もっと説明してください

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


        }
4

1 に答える 1

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 によって暗黙的に管理されます。submit を押すたびにカウントが 1 増加し、正しい答えが配列内に配置されます。もちろん、4 番目の回答を送信するときに、送信ボタンを無効にするなどの操作を行う必要があります。

于 2012-04-18T03:45:13.487 に答える