2013-03-29 6 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 Exception. – Smit

+1

Сначала вам нужно отлаживать! Введите код ошибки или используйте отладчик. Ваш блок catch ужасен, так как он вам ничего не скажет. По крайней мере, распечатайте stacktrace: 'e.printStackTrace()' –

+1

Какая ошибка вы получаете? –

ответ

1

Изменение этой линии :

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

в

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