Login Registre-se
Preencher jTable a partir de um ArrayList [Resolvido]  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
Geraldo

JavaC Membro

Membro desde: 07/03/2017 15:09:37
Mensagens: 11
Offline

Olá Pessoal, estou tentando carregar uma jTable a partir de DefaultTableModel (duas colunas).
Mas a table não preenchem automaticamente ao carregar... Ficando vazia só com o cabeçalho definido no "modelo".

Tenho a classe TableModelProd configurada uma vez que via jButtons eu Adiciono e removo linhas...
respectivamente: tabelaModel.addRow e tabelaModel.removeRow(table.getSelectedRow());
- Pelo menos penso eu!?!

No "DAO" tenho um ArrayList :





Na tela Principal faço:



Imprimindo este resultado no console (tela principal ):
1|B1 1,50M
2|B1 1,60M

Agradeço desde já qualquer ajuda

Esta mensagem foi editada 1 vez. Última atualização foi em 09/06/2017 15:21:51

resplandes

JavaC Membro
[Avatar]

Membro desde: 05/12/2012 18:01:25
Mensagens: 134
Localização: Peixoto de Azevedo - Mato Grosso
Offline

usar assim

Pronto.

Willian Resplandes
[Email] [WWW] [MSN]
Geraldo

JavaC Membro

Membro desde: 07/03/2017 15:09:37
Mensagens: 11
Offline

resplandes. Obrigado por responder.
Deixa eu entender?

Aqui: jTable.setModel(tableModel);
Você esta instanciando ou setando???

Aqui: tableModel.setData(listaPopulada);
1º) listaPopulada equivale ao result3 do meu código... Ou tenho que criar nova lista a partir da result3??
Ao aplicar


2º) Ao tentar assim:


O java pede "cast"...

Ao aplicar :


Dá erro.


robertop

JavaC Membro

Membro desde: 10/07/2013 20:08:36
Mensagens: 163
Offline

Bom dia!

Tente mudar o seu for e deixa +- assim.
Veja se resolve.

Geraldo

JavaC Membro

Membro desde: 07/03/2017 15:09:37
Mensagens: 11
Offline

Olá Robertop obrigado por responder...

Tentei com o "for" indicado... De erro:
java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
at java.util.Vector.setElementAt(Unknown Source)
at javax.swing.table.DefaultTableModel.setValueAt(Unknown Source)


Este método: tableModel.setValueAt(x,y) no código está assim pegando o "geter" da class Produtos...

Contudo, desculpem se estou falando bobagem... Mas me parece que este método só tá retornando dados com base na linha e coluna.




Pesquisando... achei um exemplo assim:



Não rolou também.

Pergunta: Estou retornado um arrayList e está correto? Como transformo em matriz de duas dimensões (sendo este o caso)?
Ou então como estruturo método para add linhas baseado no "tableModel.setValueAt(x,y)"... Conforme Robertop deu a entender?? - Considerando ainda que o que tenho só retorna.

Agradeço qualquer ajuda.

Lembrando que os métodos para adicionar linhas e remover linhas estão funcionado corretamente.

Abaixo segue as class envolvidas:



TableModel AbstractTableModel :







robertop

JavaC Membro

Membro desde: 10/07/2013 20:08:36
Mensagens: 163
Offline

Como você criou o tableModel?

teu projeto é muito grande, compacta e anexa ele aqui.
Geraldo

JavaC Membro

Membro desde: 07/03/2017 15:09:37
Mensagens: 11
Offline


Olá Robertop.

Acredito que não fiz nada de complexo considerando que estou aprendendo programar em JAVA.

Eu Importei...


No jFrame:



Instanciei modelo Defaut...

TableModelProd tabelaModel = new TableModelProd();


Em...




carreguei o JTable, associei ao scrollpane e add a tela FrmPrincipal...



O modelo: TableModel AbstractTableModel... Esta publicado acima na integra...

Geraldo

JavaC Membro

Membro desde: 07/03/2017 15:09:37
Mensagens: 11
Offline

Robertop, não achei como anexo ou pelo menos publicar um print da tela do projeto.
robertop

JavaC Membro

Membro desde: 10/07/2013 20:08:36
Mensagens: 163
Offline

Tens um e-mail?
Geraldo

JavaC Membro

Membro desde: 07/03/2017 15:09:37
Mensagens: 11
Offline

Robertop segue Email..

Contudo, se for pedir para eu importar alguma coisa já vou dizendo que não sei kkkkkk Desculpe!

jgddantas2@hotmail.com
Geraldo

JavaC Membro

Membro desde: 07/03/2017 15:09:37
Mensagens: 11
Offline

Robertop

Enviei o print da tela.
Segui o que entendi de como criar "AbstractTableModel"... Tanto é que funciona os botões ( "grande coisa..." kkkkk ).

2º o Doc do Java: https://docs.oracle.com/javase/tutorial/uiswing/components/table.html ...

Os dados são armazenados em uma matriz de objetos bidimensional (contudo, pelo que estou entendendo até agora, o Java não tem array de 2 dimensões diretamente)...

E, também 2º o Doc Class: https://docs.oracle.com/javase/8/docs/api/javax/swing/table/DefaultTableModel.html...
Daria para usar o "setDateVector":
DefaultTableModel(Object[][] data, Object[] columnNames)
Constructs a DefaultTableModel and initializes the table by passing data and columnNames to the setDataVector method.


E, conforme lá em cima(deste post)... Estou obtendo um ArrayList na consulta do banco de dados...

Como gero o Object[][] de 2 dimensões e retorno para JFrame... Lá no DAO???
Ou, como converto o ArrayList no Object necessário???

Trazer os dados, estou trazendo no JFrame. Só não consigo coloca-lo na JTable.

Tudo que estou utilizando no código está aí em cima (class Produtos e class TableModelProd).

Agradeço qualquer ajuda.





Geraldo

JavaC Membro

Membro desde: 07/03/2017 15:09:37
Mensagens: 11
Offline

Esta linha(retirar o reticencias em coloquei errado. Perdão"

Geraldo

JavaC Membro

Membro desde: 07/03/2017 15:09:37
Mensagens: 11
Offline

Olá Gente

Consegui listar o que desejava a partir do table.AbstractTableModel.

Tentei aplicar conforme indicado pelo Roberto... Não rodou direto. Foi preciso refazer do zero os métodos do AbstractTableModel... De qualquer forma muito obrigado Robertop.

Contudo, meu condicionamento programático sempre se baseia na captação de um ID para editar,alterar ou excluir um cadastro...

Então pergunto: Dá para carregar um coluna oculta no JTable? Para depois recuperar este ID?? Ou estou "viajando na batatinha"..
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.9 © JForum Team