[resolvido] jTable  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
cesar340
Entusiasta Java
[Avatar]

Membro desde: 05/01/2012 15:09:52
Mensagens: 21
Offline

ola, sempre visualizo o forum e consigo achar minhas duvidas pesquisando no mesmo. mas agora to a tarde inteira tentando fazer algo simples e nao consigo de jeito nenhum!
desculpem a ignorancia, começei a trabalhar com programação a 1 mes e meio no maximo!

tenho uma classe jFrame com alguns campos(nome, endereço,estado,etc...)
nesta classe eu pego as informações e jogo em variaveis! ae pronto, tenho tudo que o usuario digitou em algumas variaveis(sei que o correto eh com banco de dados, mas estou fazendo assim para aparender)
BELEZA nesta classe esta tudo ok.

criei uma outra classe Jframe que mostra o valor daquelas variaveis (ou seja, os dados do usuario)
aprensentava esses dados em um jAreaText.

agora preciso mostrar esses dados em uma tabela, criei a tabela com um modelo (criado automaticamente pelo netbeans)
NAO CONSIGO de jeito nenhum colocar essas variaveis na tabela (cada variavel em uma coluna e todas na mesma linha)

se consegui me expressa e alguem entendeu minha duvida, espero que me ajude!
Grato Cesar

This message was edited 1 time. Last update was at 09/01/2012 15:29:54

djJoe
Debugger

Membro desde: 02/09/2010 09:34:44
Mensagens: 69
Localização: Parauapebas-PA
Offline

Olá amigo, tente assim:

jTable1.setValueAt(variavel,linha,coluna);
[Email]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Aprenda a criar um TableModel: http://www.guj.com.br/posts/list/15/199067.java#1001295

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
cesar340
Entusiasta Java
[Avatar]

Membro desde: 05/01/2012 15:09:52
Mensagens: 21
Offline

GRANDE djJoe !
consegui com esse codigo cara, MUITO OBRIGADO!
pesquisei a tarde inteira e nao achei isso.
meu codigo fico assim:



nao querendo abusa, mas e se eu quise colocar na tabela informações de um array.
Por exemplo:

as variaveis acima estao em um array = MeuArray{nome,endereco,email,telefone,estado,sexo,interesses,biografia}
e poderia fazer assim:


mas nao existe um comando que faça isso automaticamente?

GRATO.
djJoe
Debugger

Membro desde: 02/09/2010 09:34:44
Mensagens: 69
Localização: Parauapebas-PA
Offline

Que bom que deu certo.
use um loop:

[Email]
cesar340
Entusiasta Java
[Avatar]

Membro desde: 05/01/2012 15:09:52
Mensagens: 21
Offline

SEM PALAVRAS djJoe!
muito obrigado pela ajuda, to no nivel basico do basico de java (deve ter percebido hehehehe)
Luiz_Gustavo
Virtual Machine Man
[Avatar]

Membro desde: 30/04/2005 12:55:11
Mensagens: 518
Localização: Assis
Offline

Cesar,

apensar de você ter aparentemente resolvido seu problema dá uma olhada neste post: http://www.guj.com.br/java/35481-alimentar-um-jtable-com-uma-select

[]'s

Analista e Desenvolvedor de Sistemas
http://luizgustavoss.blogspot.com/
http://luizgustavoss.wordpress.com/
http://www.linkedin.com/in/luizgustavoss
Procurando uma especialização em Java, SOA e Android? Conheça a TNT Educacional

[Email] [WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Não se engane. Enquanto estiver usando a tabela desse jeito você estará criando problemas, não resolvendo. Aprenda a criar seu próprio TableModel. Ser inexperiente não é desculpa para também ser preguiçoso.

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
Luiz_Gustavo
Virtual Machine Man
[Avatar]

Membro desde: 30/04/2005 12:55:11
Mensagens: 518
Localização: Assis
Offline

ViniGodoy, nem acho que seja questão de preguiça. Como ele mesmo disse faz pouco tempo que está programando, e no começo é difícil ter um senso crítico quanto às soluções que são passadas por outras pessoas. Como ele não conhece nada de JTable ele pode ter achado que esta solução apresentada pelo primeiro exemplo é a melhor (ou única).

Cesar, neste link que passei tem um exemplo completo de como criar uma AbstractTableModel, com DefaultTableColumnModel e DefaultTableCellRenderer.


[]'s

Analista e Desenvolvedor de Sistemas
http://luizgustavoss.blogspot.com/
http://luizgustavoss.wordpress.com/
http://www.linkedin.com/in/luizgustavoss
Procurando uma especialização em Java, SOA e Android? Conheça a TNT Educacional

[Email] [WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Acho que me expressei mal (acabei sendo sucinto demais pois estava escrevendo do meu celular).

Não estou falando que ele está com preguiça. Queria dizer que ele deve estudar isso daqui em diante, e não pode usar como argumento o fato de "sou iniciante e, assim é mais fácil, e já resolveu, vlw." Essa alegação (que ele ainda não usou), sim, é de quem tem preguiça de estudar.


Enquanto estiver usando DefaultTableModel, o problema não está resolvido.

This message was edited 2 times. Last update was at 07/01/2012 07:01:12


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
djJoe
Debugger

Membro desde: 02/09/2010 09:34:44
Mensagens: 69
Localização: Parauapebas-PA
Offline


Ok amigos, de fato vocês estão certos, quis apenas dar uma "luz" à ele, se vocês prestarem mais atenção nos posts dele verá que ele não é só iniciante em java, mas sim em programação, eu também me considero iniciante, para ter um conhecimento igual ao seu "ViniGodoy" tenho que ralar muito, já li vários artigos e posts seu, inclusive no Ponto V, parabéns. Tá, mais voltando ao assunto, estou desenvolvendo um aplicativo de gerenciamento de frota para o meu irmão, estou usando o NetBeans, foi gerado um JTable e, sinceramente estou tendo problemas ( aproveitando o tópico ) até para adicionar e remover linhas, estou usando o BD Access e, apenas consigo inserir e consultar, mas, deletar e alterar não consigo. Ontem lendo um post o "ViniGodoy" citou que usando DefaultTableModel teria problema para fazer tais coisas, então, por que não dá certo?? é por causa do retono do metodo getValueAt?

This message was edited 1 time. Last update was at 07/01/2012 08:29:40

[Email]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Oi pessoal.

Só deixando claro novamente. Não vejo mal nenhum em você ser iniciante, ou em fazer as coisas erradas por desconhecimento. Mesmo depois de anos de profissão, errar por inexperiência ainda é comum.

Eu vejo mal é quando um iniciante do fórum (e isso é muito comum) continua fazendo errado mesmo depois de mostrarmos o caminho certo. Se vocês olharem o tópico que indiquei, você vai ver que os "veteranos" já criaram diversos tópicos, extremamente detalhados, explicando como criar e manter o seu TableModel.

Algumas pessoas, como o Mark, já dedicaram uma porção considerável de tempo para desenvolver uma API que substituísse o DefaultTableModel, sem as desvantagens deste.




djJoe, quanto ao seu problema. É difícil dizer só com as informações que você passou.
O seu código dispara alguma exception? Dá algum erro visível?

Você pode postar o trecho onde você faz a modificação e grava no BD?

This message was edited 1 time. Last update was at 07/01/2012 08:39:58


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
djJoe
Debugger

Membro desde: 02/09/2010 09:34:44
Mensagens: 69
Localização: Parauapebas-PA
Offline


Olá, essa é a parte do código:



E esse é o erro geado:

07/01/2012 10:03:00 AlterMot jButton1ActionPerformed
SEVERE: null
java.sql.SQLException: [Microsoft][Driver ODBC Microsoft Access] Par?metros insuficientes. Eram esperados 1.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3110)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:33
at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:28
at ConectAccess.atualizarMotoristas(ConectAccess.java:9
at AlterMot.jButton1ActionPerformed(AlterMot.java:133)
at AlterMot.access$000(AlterMot.java:20)
at AlterMot$1.actionPerformed(AlterMot.java:69)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:231
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:602
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:423
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:416
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:247
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:17
at java.awt.Dialog$1.run(Dialog.java:1046)
at java.awt.Dialog$3.run(Dialog.java:109
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1096)
at java.awt.Component.show(Component.java:1563)
at java.awt.Component.setVisible(Component.java:1515)
at java.awt.Window.setVisible(Window.java:842)
at java.awt.Dialog.setVisible(Dialog.java:986)
at ConsMots.jButton3ActionPerformed(ConsMots.java:210)
at ConsMots.access$100(ConsMots.java:22)
at ConsMots$3.actionPerformed(ConsMots.java:102)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:231
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:602
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:423
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:416
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:247
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:17
at java.awt.Dialog$1.run(Dialog.java:1046)
at java.awt.Dialog$3.run(Dialog.java:109
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1096)
at java.awt.Component.show(Component.java:1563)
at java.awt.Component.setVisible(Component.java:1515)
at java.awt.Window.setVisible(Window.java:842)
at java.awt.Dialog.setVisible(Dialog.java:986)
at PrinFram.jMenuItem8ActionPerformed(PrinFram.java:225)
at PrinFram.access$200(PrinFram.java:23)
at PrinFram$3.actionPerformed(PrinFram.java:129)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:231
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1223)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1264)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:602
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:423
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:416
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:247
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
CONSTRUÍDO COM SUCESSO (tempo total: 2 minutos 38 segundos)
[Email]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline

Esse erro ocorre no Access quando o nome de uma coluna ou tabela está errado. Uma forma fácil de depurar em access é imprimir o texto daquela consulta no SQL, e então tentar usar-la no editor de consultas do próprio Access. Geralmente lá ele aponta exatamente o local que está errado. O nome do campo é mesmo Name, e não Nome?


Para melhorar seu código, é uma boa você usar um PreparedStatement. Isso vai deixar o código mais legível, evitar concatenação, e evitar problemas caso os dados das suas variáveis contenha um apóstrofe (vamos supor que vc vá cadastrar o motorista Arafat Al Kali'l).

Usar um PreparedStatement é muito fácil, seria assim:



Note que não tive que me preocupar com apóstrofes. O PreparedStatement cuida disso para mim (é mais prático ainda para campos de datas, pois vc não precisa se preocupar com o formato).

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
djJoe
Debugger

Membro desde: 02/09/2010 09:34:44
Mensagens: 69
Localização: Parauapebas-PA
Offline


ViniGodoy, meu amigo, vou te chamar assim... meu amigo, sinceramente, posso dizer que estava à 4 dias com esse problema e revirei todo o banco, tabelas, campos e, nada. Estava ciente que não tinha problema no BD, mas, o campo Name, na verdade é Nome e, agora funcionou legal, tá excluindo e alterando com sucesso. Li uma 300x o campo Nome e só enxergava Name. Obrigado, vou estudar agora suas dicas sobre DefaultTableModel e PreparedStatement.

Obrigado!!
[Email]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team