Inserir dados em um JTable ,através de um ArrayList que já tem dados anteriores

4 respostas
ricardo_batista_alme
Tenho um form que tem um JTable e um método que inseri a linha em cada click do botão,esta tudo em um ArrayList.

Qaundo fecho o form eu serializo o ArrauyList ,até aqui tudo bem,quando entro no forme novamente eu deserializo o ArrayList e carrego
o JTable novament, então quando no click tem que incluir a proxima linha ,deleta as anteriores.
Ex. Fase 1 :click 1 uma linha inserida,click 2 segunda linha inserida.
Fase 2 : o form é fechado.
Fase 3 : form aberto.
Fase 4 : JTable carrega com o ArrayList que tinha duas linhas.
Fase 5 : Click 3 ,deveria inserir a proxima linha, isto não esta acontecendo.
Acho que eu deveria pegar a ultima posição do ArrayList e inserir lá, não estou conseguindo.

4 Respostas

zerokelvin

vc tá usando um model seu? extendendo o abstracttablemodel ou usando o default?
posta o modelo ae…

ricardo_batista_alme
Estou usando assim :

table_1 = new JTable();

table_1.setBounds(45, 379, 596, 144);

table_1.setModel(new javax.swing.table.DefaultTableModel(new Object[][]{},new String[]{Código,Produto,Descrição,Quantidade,Preço})

{

Class[] types = new Class[]{

java.lang.String.class,

java.lang.String.class,

java.lang.String.class,

java.lang.String.class,

java.lang.String.class,

};

boolean[] canEdit = new boolean[]{

false,

false,

false,

false,

false,

};

Até aqui esta tudo bem, eu tenho uma classe Bean com os get e set, no form no JTextField inclui o dados ,no click do JButton eu mando pra um ArrayList através do bean e carrego o JTable acima mostrado, ai serializo,fecho o sistema, quando retorno carrego o JTable com os dados antes serializado e na hora de incluir o proximo registro não conseigo inserir a proxima linha.

Abaixo o metodo que popula o JTable.

// Preenche o JTable

public void populaJTable(List<ItensPedidoBean> listaDePedidos){

DecimalFormat df = new DecimalFormat("#,###.00",new DecimalFormatSymbols(<a href="http://Locale.US">Locale.US</a>));

tm = (DefaultTableModel) CadastroClienteUI.table_1.getModel();

/<em>for(int i =(tm.getRowCount()-1);i>=0;++i){

tm.removeRow(i);

}</em>/
/* for(int i =(tm.getRowCount()-1);i&gt;=0;--i){
		 tm.removeRow(i);
	}*/
/* Aqui for para incluir o proximo registro ,verificando que  tem registro

for(int i =0; i <listaDePedidos.size(); ++i){

if(listaDePedidos.get(i).getCodigo()!= null){

tm.addRow(new Object[] {

listaDePedidos.get(i).getCodigo(),

listaDePedidos.get(i).getProduto(),

listaDePedidos.get(i).getDescricao(),

listaDePedidos.get(i).getQuantidade(),

df.format(listaDePedidos.get(i).getPreco())});

}else{

tm.addRow(new Object[]{

listaDePedidos.get(0).getCodigo(),

listaDePedidos.get(0).getProduto(),

listaDePedidos.get(0).getDescricao(),

listaDePedidos.get(0).getQuantidade(),

df.format(listaDePedidos.get(0).getPreco())});	

}

}

}

O que esta comentado tipo exclui todos e exclui linha a linha esta funcionando mais inseri proxima ,não acho que um for resolveria mais não estou conseguindo fazer.>
ricardo_batista_alme

Conseguir tinha que ter um for para setar a linha correta.
Vlw, galera.

ricardo_batista_alme

Resolvido

Criado 31 de agosto de 2011
Ultima resposta 2 de mai. de 2012
Respostas 4
Participantes 2