Como faço para retornar todos valores de ArrayList em um Jtable… no exemplo abaixo, eu estou rodando todo ArrayList, porém ele ta jogando dentro do Jtable somente o ultimo registro do ArrayList.
[color=green] public static void tabela(ArrayList carregar)
{
Estrutura dados = new Estrutura();
JFrame f = new JFrame("JTable Sample");
Container content = f.getContentPane();
Da uma olhada nesse teu FOR que ele esta execultado toda tua atribuição e ta criando a JTable mais de uma vez por estar dentro do FOR então ele cria e quando passa novamente pelo laço ele cria outra vez e destroi o anterior e assim por diante. E por estar trazendo somente a ultima linha é porque
por exemplo Integer a=new Integer (dados.B_ra); ele cria cada vez que o laço repete então vai prevalecer os dados da ulitma vez que o laço foi execultado.
To meio que apanhando para o jtble… Estou tentando fazer eh criar um jtable onde o mesmo receba valores de um Array List (“alunos.txt”) que contem (nome, cod, nota1,nota2…nota6)… Vc teria como eu poderia fazer de outra forma… tentei tirar do FOR como vc disse, mas naum deu certo…
Malves_info , em primeiro lugar, muito obrigado pela atenção que vc esta dano a este algoritmo…
Esta ocorrendo um erro ao executar esta nova rotina, esta aparecendo na celula “[Ljava.lang.Object;@131303f” esta mensagem…
Estava interpretando sua rotina, e ve que vc usou o metodos de adicionar sempre uma linha no final… vou tentar refazer dessa forma…(claro estudar mais sobre ArrayList e Jtable)… veja so como ficou ao executar o mesmo…
Brother achei uma solução rápida aqui, espero que desta vez funcione.
public static void tabela(ArrayList carregar)
{
Estrutura dados = new Estrutura();
JFrame f = new JFrame("JTable Sample");
Container content = f.getContentPane();
String[] columns = { "nome", "R.A.", "Nt1", "Nt2", "Nt3", "Nt4", "Nt5", "Nt6" };
/**
* Foi passado o codigo que cria a JTable antes do laço
*/
Object[][] rowsTemp = new Object[][]{null};
DefaultTableModel modelo = new DefaultTableModel(rowsTemp,columns);
JTable table = new JTable(modelo);
JScrollPane scrollPane = new JScrollPane(table);
content.add(scrollPane, BorderLayout.CENTER);
//Obtem o Iterator de carregar
Iterator i = carregar.iterator();
Object rows[] = new Object[columns.length];
//Enquanto obtiver dados
while(i.hasNext()){
int index = 0;
//Recebendo o proximo registro
dados = (Estrutura)i.next();
rows[0] = dados.B_nome;
Integer a=new Integer (dados.B_ra);
rows[1] = a;
Double b=new Double (dados.B_si);
rows[2] = b;
Double c=new Double (dados.B_pi);
rows[3] = c;
Double d=new Double (dados.B_at);
rows[4] = d;
Double e=new Double (dados.B_ac);
rows[5] = e;
Double g=new Double (dados.B_arq);
rows[6] = g;
Double h=new Double (dados.B_adm);
rows[7] = h;
//Adiciona nova linha
modelo.addRow(rows);
}
f.setSize(600, 200);
f.setVisible(true);
}
Acho que vc pode tbm mudar essa passagem de valor direto ao inves por exemplo de ser:
Double h=new Double (dados.B_adm); poderia ser rows[7] = dados.B_adm;
Eu to tentando usar uma tabela de maneira parecida.
Na verdade ja está funcionando; a bronca é que ele deixa o usuario editar as informações contidas nas celulas.
Voces sabem como desabilitar a opção de edição??