如何解决 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
)
我有一个带有 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
)