estou tentando passar os dados do meu objeto List(é uma consulta a um banco de dados) para o meu jtable, problema é que quando adiciono a linha, ele me retorna nao os dados do List, e sim o codigo de cada linha(Exemplo: [Ljava.lang.Object;@3126d4). Qual metodo eu uso pra capturar os dados de cada linha do List?? Seuqe a parte do meu codigo q tá dando pau… na linha vermelha q eu acho q ta o problema…
Qual o tipo de dados que está armazenado na List?
Se for Object, ele vai trazer desta forma que você relatou.
Tente fazer cast para String.
Henrique.tenorio
Quantas colunas tem sua tabela?
Suponha que temos uma tabela com 5 colunas e um (ArrayList<Aluno> lista) com varios campos (codigo, nome, telefone, curso, cidade)
voçê tera que fazer assim
NÃO use DefaultTableModel, siga os links na minha assinatura para aprender como se livrar dele, com um TableModel proprio, voce vai passar diretamente sua lista de dados sem ter que fazer essa gambiarra de ficar montando vetores de valores.
A
andreReisLima
diz q nao é possivel chamar os metodos get em matrizes… ta tenso isso…2 dias na lama…rs
Marky.Vasconcelos
Com um model proprio voce faria simplesmente o seguinte:
tableModel.addAll(lista);
E pronto, sua JTable já tem os dados que precisa.
A
andreReisLima
vou ler man…valew pelo help…
Priuli
Marky.Vasconcelos:
Com um model proprio voce faria simplesmente o seguinte:
tableModel.addAll(lista);
E pronto, sua JTable já tem os dados que precisa.
Recomendo tb, muito pratico!!!.
B
BrunoLOliveira
Tenho minha TableModel
como chamar a consulta no evento do botao?
segue o codigo:
´publicclassTableModelComputadoresextendsAbstractTableModel{privateList<ComputadoresBean>comp;publicTableModelComputadores(){// no construtor, instanciamos o Listcomp=newArrayList<ComputadoresBean>();}/** * Criamos um construtor de conveniencia para ja popular a lista. * * @param lista * a lista de clientes a ser adicionada. */publicTableModelComputadores(List<ComputadoresBean>lista){this();comp.addAll(lista);}@OverridepublicClass<?>getColumnClass(intcoluna){// todas as colunas representam uma StringreturnString.class;}@OverridepublicintgetColumnCount(){return5;}@OverridepublicStringgetColumnName(intcoluna){// vamos retornar o nome de cada colunaswitch(coluna){case0:return"ID";case1:return"Data de CADASTRO";case2:return"Equipamento";case3:return"Nome";case4:return"Serial";default:return"";}}@OverridepublicintgetRowCount(){returncomp.size();}@OverridepublicObjectgetValueAt(intlinha,intcoluna){ComputadoresBeancb=comp.get(linha);switch(coluna){case0:returncb.getId();// retornamos o IDcase1:returncb.getData();// retornamos a Datacase2:returncb.getTipo();// tipocase3:returncb.getNome();// nomecase4:returncb.getSerial();// serialdefault:returnnull;// isso nunca deve ocorrer, pois temos so 5 colunas}}@OverridepublicbooleanisCellEditable(introwIndex,intcolumnIndex){returntrue;}@OverridepublicvoidsetValueAt(Objectvalor,intlinha,intcoluna){ComputadoresBeancb=comp.get(linha);switch(coluna){case0:cb.setId(Integer.parseInt(valor.toString()));// mudamos o IDbreak;case1:cb.setData(valor.toString());// mudarbreak;case2:cb.setTipo(valor.toString());//mudar ....break;case3:cb.setNome(valor.toString());// mudar....break;case4:cb.setSerial(valor.toString());// mudar....break;}// � importante notificar os listeners a cada alteracaofireTableDataChanged();}publicvoidadiciona(ComputadoresBeancb){comp.add(cb);fireTableRowsInserted(comp.size()-1,comp.size()-1);}publicvoidremove(intindice){comp.remove(indice);fireTableRowsDeleted(indice,indice);}publicintgetIndice(ComputadoresBeancb){returncomp.indexOf(cb);}publicvoidadicionaLista(List<ComputadoresBean>lista){inti=comp.size();comp.addAll(lista);fireTableRowsInserted(i,i+lista.size());}publicvoidlimpaLista(){inti=comp.size();comp.clear();fireTableRowsDeleted(0,i-1);}}
Tenho uma JTable desenhada em minha aplicação, quero que ao clicar no botao preencha a JTable com os dados da TableModel.
B
BrunoLOliveira
ninguem?
markinlelo
Kra, pesquise sobre “BeansBiding”,
vc vincula direto o jTable a um List