2010-12-02 35 views
0

我试图从包含单个垂直数字文件的文件中读取数据,并用它们填充矩阵(由JTextField组成),但是当我尝试set方法时,程序在更改后引发异常第二排试图从文件读取。抛出异常

for(int a=0; a < i; a++) { 
    for(int b=0; b < i; b++){ 
     // x = raf.readLine(); 
     matrix[a][b].setText(raf.readLine()); 
    } 
} 
+10

你看到什么异常,你能否提供堆栈跟踪。 – 2010-12-02 16:39:03

+4

什么是raf?我是什么?什么是矩阵?多一点的代码和/或堆栈跟踪会有帮助... – Fortega 2010-12-02 16:43:36

+0

解决了它!问题是我在第二个“for”完成后正在做raf.close()。 – Crox 2010-12-03 16:40:47

回答

2

你可能想要更多的东西像下面的例子中,使用一些适当的值。WIDTHHEIGHT

for (int row = 0; row < HEIGHT; row++) { 
    for (int col = 0 ; col < WIDTH; col++) { 
     matrix[row][col].setText(raf.readLine()); 
    } 
} 
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

相关问题