【问题标题】:JTextArea keeps adding lines in for loop, how to prevent this?JTextArea 不断在 for 循环中添加行,如何防止这种情况?
【发布时间】:2016-04-19 03:43:30
【问题描述】:

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

我不确定我的代码中发生了什么导致这种情况,但我会附上学生平均按钮的 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 + "%.");

}

【问题讨论】:

标签: java swing multidimensional-array jtextarea netbeans-6.9


【解决方案1】:
studentName = lastNameInput.getText() + " " + firstNameInput.getText();

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

您可以通过添加:

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

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

【讨论】:

    猜你喜欢
    • 2021-06-19
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 2023-04-03
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多