我试图从包含单个垂直数字文件的文件中读取,并用它们填充矩阵(由JTextField
s组成),但是当我尝试set方法时,程序会抛出异常更改为第二行后
for(int a=0; a < i; a++) {
for(int b=0; b < i; b++){
// x = raf.readLine();
matrix[a][b].setText(raf.readLine());
}
}
答案 0 :(得分:2)
你可能想要更像下面的例子,使用WIDTH
和HEIGHT
的一些合适的值。
for (int row = 0; row < HEIGHT; row++) {
for (int col = 0 ; col < WIDTH; col++) {
matrix[row][col].setText(raf.readLine());
}
}
答案 1 :(得分:2)
您不应该从GUI类中读取文件。尝试通过创建用于读取文本文件的专用类来分离关注点。也许让您的文件阅读器类返回Iterator<String>
行。现在在单元测试中测试文件读取器类,并确保它正确显示行。
然后做这样的事情:
Iterator<String> lines = yourHelperClass.getLines()
for(int a=0; a < i; a++) {
for(int b=0; b < i; b++){
if(!lines.hasNext()){
// not enough lines, probably throw an Exception here
}
matrix[a][b].setText(lines.next());
}
}
通过这种方式,可以更容易地找出实际出现的问题。
推荐阅读:Coupling and Cohesion: The Two Cornerstones of OO Programming