2016-04-19 3 views
0

В настоящее время я работаю над типом программы класса. Пользователь вводит имя студента и метки, которые они получили на 4 тестах, а затем в 2D-массив. Когда я нажимаю кнопку «Студенческий средний», чтобы определить среднюю оценку учащегося, я хочу, чтобы он печатал информацию о студенте, а затем среднюю строку после. Но выход прямо сейчас, показанный на рисунке, добавляет около 15 дополнительных строк до отображения среднего значения.JTextArea продолжает добавлять строки для цикла, как это предотвратить?

enter image description here

Я не уверен, что происходит в моем коде, который вызывает это, но я приложу код actionPerformed Баттона Student усредняет. Этот код, где все происходит волшебство:

private void studentAveragesButtonActionPerformed(java.awt.event.ActionEvent evt) { 

    int sum = 0; 
    int studentAverage = 0; 

    studentName = lastNameInput.getText() + " " + firstNameInput.getText(); 

    for (int row = 0; row < studentMarks.length; row++) { 
     for (int col = 0; col < studentMarks[0].length; col++) { 
      if (studentMarks[row][col] != null) { 
       studentMarkScreen.setText(studentMarkScreen.getText() + " " + String.valueOf(studentMarks[row][col])); 
       if (studentMarks[row][col].equals(studentName)) { 
        if (studentMarks[row][0].length() > 3) { 
         for (col = 1; col < studentMarks[0].length; col++) { 
          sum += Integer.parseInt(studentMarks[row][col]); 
         } 
        } 
       } 
      } else { 
       continue; 
      } 
     } 
    } 
    studentAverage = sum/4; 
    studentMarkScreen.append("\n"); 
    studentMarkScreen.append("The overall average for " + studentName + " is " + studentAverage + "%."); 

}

+0

Я настоятельно рекомендую взглянуть на [Как использовать таблицы] (http://docs.oracle.com/javase/tutorial/uiswing/components/table.html) – MadProgrammer

ответ

1
studentName = lastNameInput.getText() + " " + firstNameInput.getText(); 

Я предположил бы, переменная lastNameInput.getText() имеет мусор.

Вы можете легко проверить это, добавив:

System.out.println("(" + lastNameInput.getText() + ")"); 

Даже если это не проблема, которую нужно добавить отладки кода, чтобы отобразить значение текстовой области каждый раз, когда вы/добавить текст Это. Затем вы можете определить, какая из этих инструкций вызывает проблему.