如何解决 java.lang.ArrayIndexOutOfBoundsException: 1 in Java jframe?

How to solve java.lang.ArrayIndexOutOfBoundsException: 1 in Java jframe?

我有一个带有 java GUI 的项目,我需要从文本文件中获取元素并将它们存储在数组中,我已经完成了所有这些但是当我 运行 它显示的程序时我 java.lang.ArrayIndexOutOfBoundsException: 1 错误消息,我不知道我的错误在哪里以及如何解决。任何帮助将不胜感激。

这是我将元素添加到数组的代码:

Scanner input1;
    try {
        input1 = new Scanner(new FileReader("studentObligation.txt"));
    } catch (FileNotFoundException e) {
        jLabelStatus.setText("ERROR");
        return;
    }
    counter = 0;
    while (input1.hasNext()) {
        String inside = input1.nextLine();
        String arrayInside[] = inside.split("/t");

        array[counter] = new Obligations();

        array[counter].setSubjectCode(inputArray[0]);
        array[counter].setSubjectName(inputArray[1]);
        array[counter].setSubjectTeacher(InputArray[2]);
        array[counter].setYear(Integer.parseInt(InputArray[3]));
        array[counter].setSemester(InputArray[4]);
        array[counter].setEctsCredist(Integer.parseInt(InputArray[5]));
        array[counter].setNumberOfObligations(Integer.parseInt(InputArray[6]));
        array[counter].setWeightHomework(Integer.parseInt(InputArray[7]));
        array[counter].setPointsHomework(Double.parseDouble(InputArray[8]));
        array[counter].setWeightLabWork(Integer.parseInt(InputArray[9]));

        array[counter].setWeightLabWork(Double.parseDouble(InputArray[10]));
        array[counter].setWeightExamTest1(Integer.parseInt(InputArray[11]));
        array[counter].setPointsExamTest1(Double.parseDouble(InputArray[12]));
        array[counter].setWeightExamTest2(Integer.parseInt(InputArray[13]));
        array[counter].setPointsExamTest2(Double.parseDouble(InputArray[14]));
        array[counter].setWeightPaperExam(Integer.parseInt(InputArray[15]));
        array[counter].setPointsPaperExam(Double.parseDouble(InputArray[16]));
        array[counter].setWeightTheoryExam(Integer.parseInt(InputArray[17]));
        array[counter].setPointsTheoryExam(Double.parseDouble(InputArray[18]));
        array[counter].setWeightExam(Integer.parseInt(InputArray[19]));
        array[counter].setPointsExam(Double.parseDouble(InputArray[20]));
        array[counter].setWeightProject(Integer.parseInt(InputArray[21]));
        array[counter].setPointsProject(Double.parseDouble(InputArray[22]));
        array[counter].setFinalGrade(Integer.parseInt(InputArray[23]));

        counter++;

让我尝试指导您调试问题。异常应该给你抛出异常的行号。 ArrayIndexOutOfBoundsException 当您尝试使用数组中不可用的索引访问数组时抛出。鉴于错误是关于索引 1,那么错误似乎是在第

array[counter].setSubjectName(inputArray[1]);

array[counter] = new Obligations();   

计数器递增后。很可能是第一个,堆栈跟踪应该可以确认

调试的下一步是找出错误行之前的数组值。你可以把这个值打印出来看看是期望值还是别的什么。或者,您可以在 IDE

中逐步调试

如果不是期望值,回溯看看变量值是如何计算的

由于无法提供准确答案,问题中缺少多项内容

  • array变量定义
  • inputArray变量定义
  • 使用 arrayInside 变量
  • 抛出异常的行

(提示:"/t" 不是 tab