2013-03-29 30 views
1

我需要将我的文本文件内容放入jtable中并显示它们。我已经尝试了各种代码,并挂起和错误了。我认为它不断重复表值,但我不明白为什么会发生这种情况,因为我称之为reader.close()命令,如果没有下一行,读者不应该继续下去。在JTable中显示文本文件内容

这里是的DefaultTableModel代码:

String columns[] = { "Name", "Age", "Email Address", "Cell Number" }; 
    JTable contactTable = new JTable(); 
    DefaultTableModel tableModel; 

    // table with 4 columns 
    tableModel = new DefaultTableModel(0,4); 
    tableModel.setColumnIdentifiers(columns); 
    contactTable.setModel(tableModel); 

下面是从文本文件中的代码阅读:

void showContacts(){ 
    String line; 
    BufferedReader reader; 


    try{  
     reader = new BufferedReader(new FileReader(file)); 

     while((line = reader.readLine()) != null)) //this gives me an error??? 
     { 
      tableModel.addRow(line.split(", ")); //this has a comma and a space bc that      is how the file is written to 
     } 
     reader.close(); 
    } 
    catch(IOException e){ 
     JOptionPane.showMessageDialog(null, "Buffered Reader issue."); 
    } 

} 

这里是文本文件的内容:

Name, Age, Email Address, Cell Number, 
    John Smith, 21, [email protected], 1234564789, 
+1

什么是'file'?如果在伪装位置找不到文件,则会抛出FileNotFound异常。 – Smit

+1

您需要先做一些调试!输入错误代码或使用调试器。你的catch块很糟糕,因为它会告诉你什么都没用。至少打印出stacktrace:'e.printStackTrace()' –

+1

你得到了什么错误? –

回答

1

改变这一行:

while((line = reader.readLine()) != null)) 

while((line = reader.readLine()) != null)