To com um problema aqui, tenho uma classe que cria e insere nomes num arquivo de texto que está funcionando perfeitamente. Em outra classe deveria cria uma tabela e mostrar todos os nomes e telefones nessa tabela.
Entretanto essa tabela só está mostrando a útima linha da tabela.
ShowAgendaPanel.java
package ui;
import java.awt.Dimension;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
/**
* Essa classe implementa o painel com a tabela mostrando os nomes e outros dados.
*
* @author Rodrigo
* @version 1.0, August 2008
*/
public class ShowAgendaPanel extends JPanel
{
private JScrollPane scrollTable;
private JTable table;
// cria o painel da tabela
private JPanel panel = new JPanel();
public ShowAgendaPanel()
{
panel.setPreferredSize(new Dimension(750, 450));
String linha;
BufferedReader br;
File agenda;
String[] array;
agenda = new File("agenda.txt");
try{
br = new BufferedReader(new FileReader(agenda));
while(((linha = br.readLine()) != null))
{
array = new String[7];
array[0] = linha.substring(linha.indexOf("-name-"),
linha.indexOf("-secondname-"));
array[1] = linha.substring(
linha.indexOf("-secondname-"),
linha.indexOf("-nickname-"));
array[2] = linha.substring(linha.indexOf("-nickname-"),
linha.indexOf("-group-"));
array[3] = linha.substring(linha.indexOf("-group-"),
linha.indexOf("email"));
array[4] = linha.substring(linha.indexOf("-email-"),
linha.indexOf("-fone-"));
array[5] = linha.substring(linha.indexOf("-fone-"),
linha.indexOf("-addres-"));
array[6] = linha.substring(linha.indexOf("-addres-"),
linha.indexOf(";"));
String[] columNames = {"Nome", "Sobrenome", "Apelido",
"Grupo", "Email", "Fone", "Endereço"};
// itens inseridos nas colunas
Object[][] data = {
{array[0], array[1], array[2], array[3],
array[4], array[5], array[6]}
};
table = new JTable(data, columNames);
// Nesse for estão aparecendo todos os dados que eu desejo
for(int i = 0; i <= 6; i++)
{
System.out.println(array[i]);
}
}
}
catch(FileNotFoundException e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(null,
"Não foi adicionado nenhum nome",
"Erro", JOptionPane.ERROR_MESSAGE);
}
catch(IOException ex)
{
ex.printStackTrace();
JOptionPane.showMessageDialog(null,
"Erro de entrada e saida", "Erro",
JOptionPane.ERROR_MESSAGE);
}
table.setPreferredScrollableViewportSize(new Dimension(750, 440));
table.setFillsViewportHeight(false);
table.setEnabled(false); // desabilita a edicao da tabela com os dados
// cria o scrol e adiciona a tabela
scrollTable = new JScrollPane(table);
// adiciona o scroll ao painel
panel.add(scrollTable);
this.add(new JScrollPane(panel));
}
}
Se algué já fez algo parecido ou sabe como resolver, eu agradeceria bastante.