java - JTextArea不断在for循环中添加行,如何防止这种情况?

标签 java swing multidimensional-array jtextarea netbeans-6.9

我目前正在开发一个成绩册类的程序。用户输入学生的姓名以及他们在 4 次测试中获得的分数,然后将其存储到一个 2D 数组中。当我单击“学生平均分”按钮来确定该学生的平均分时,我希望它打印学生信息,然后打印一行后的平均分。但现在的输出(如图所示)在显示平均值之前添加了大约 15 行额外的行。

enter image description here

我不确定我的代码中发生了什么导致了这种情况,但我将附加“学生平均值”按钮的 actionPerformed 代码。这段代码是所有魔法发生的地方:

    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 + "%.");

}

最佳答案

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

我猜测变量 lastNameInput.getText() 有垃圾。

您可以通过添加以下内容轻松测试:

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

即使这不是问题,您也需要添加调试代码以在每次设置/附加文本时显示文本区域的值。然后您可以确定哪个语句导致了问题。

关于java - JTextArea不断在for循环中添加行,如何防止这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36708164/

相关文章:

java - IntelliJ 随机无法加载用于 Spring JUnit 测试的 ApplicationContext,并出现 NoClassDefFoundError

java - 窗口是在屏幕外绘制的java程序

java - 当我从 Netbeans 运行 JFrame 程序时,印地语字体可见,但在运行 .jar 文件时不可见

java - 在java中,如何在不同数据类型的数组中创建数组

java - 将 CDI 上下文 bean 注入(inject)现有非上下文 bean 的正确方法?

java - Spring/Hibernate 多个数据源之间具有外键

java - 以编程方式创建的布局底部的按钮

java - JWebBrowser(扩展 JPanel)显示在玻璃 Pane 上方

algorithm - 大网格上的熄灯拼图

c# - ByteArray 数组到 MemoryStream