Iniciante - Ajuda para converter JTextField em Integer

14 respostas
rhoribe

Ola á alguns dias venho tendo um problema… nao conseguingo converter um campo JFormatedTextField em Integer, ou campos JTextField tb dao o mesmo erro, apesar do erro aparentar ser por causado por campos vazios, isto nao ocorre pois estou preenchendo todos os campos, e mesmo assim este erro perssiste .

Linha de codigo

model.setCnpjForn(Integer.parseInt(tfCnpjForn.getText()));

Erros !

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "11.111.111/1111-11" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) at java.lang.Integer.parseInt(Integer.java:456) at java.lang.Integer.parseInt(Integer.java:497) at fornecedores.ControllerCadForn$AcoesBotoes.actionPerformed(ControllerCadForn.java:51) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) 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:6216) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent(Component.java:5981) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4583) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4413) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2475) at java.awt.Component.dispatchEvent(Component.java:4413) 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 0 segundos) :?:

14 Respostas

ajfilho

Amigo, o erro é visível:

11.111.111/1111-11 é um número para você??

Como vc ta salvando no banco CPF/CNPJ?

-Editando…

E outra coisa, mesmo tirando a máscara, vai ficar um numero maior que o permitido para um inteiro.

Abraços!

rhoribe

Ola… este campo em questao trata-se de um campo de cnpj , eu fiz uma mascara nele por isso resultou isso "11.111.111/1111-11 ", no banco de dados este valor é armazenado como inteiro, gostaria entao de saber como faço para obter este valor e converte-lo para int.?

thimor

o cpf/cnpj deve ser gravado como CHAR ou VARCHAR ele é muito grande para gravar como inteiro.

ajfilho

1- Você pode mudar o campo cnpj de Integer para Long, pois como te disse, um número de CNPJ é maior que o range de um Inteiro.

2- Antes de setar o número, tire a máscara do campo.

Abraços!

rhoribe

Gstei da dica… vou tentar… aki… então posso usar o mesmo para CEP e Telefone né?

rhoribe

ajfilho:
1- Você pode mudar o campo cnpj de Integer para Long, pois como te disse, um número de CNPJ é maior que o range de um Inteiro.

2- Antes de setar o número, tire a máscara do campo.

Abraços!

Mas não tem como fazer este procedimento deixando a mascara?

ajfilho

É você mesmo quem gerencia a base de dados? Qual é o banco?

Seria mais prática mudar na tua classe o campo CNPJ de Integer para Long, que não precisaria mexer no banco, mas você pode trocar para CHAR/VARCHAR também, mas terá que mexer no campo da sua tabela.

Abraços!

ajfilho

rhoribe:
ajfilho:
1- Você pode mudar o campo cnpj de Integer para Long, pois como te disse, um número de CNPJ é maior que o range de um Inteiro.

2- Antes de setar o número, tire a máscara do campo.

Abraços!

Mas não tem como fazer este procedimento deixando a mascara?

Se você quizer sim…

Mas seria melhor você salvar sem a máscara para facilitar a consulta no banco.

Pense que vocë quer buscar o CNPJ 11.111.111/1111-11. Se você passar como parametro para a consulta sem a máscara, não vai encontrar resultado nenhum, pois no banco está salvo com a máscara… Entendeu?

Abraços!

thimor

Gstei da dica… vou tentar… aki… então posso usar o mesmo para CEP e Telefone né?

exato

rhoribe

Ola fico grato a todos pela ajuda mas agora ocorreu o seguinte erro:

fiz mudanças no Bd. e no meu codigo e resolvi transformar tudo em String ao inves de ficar fazendo converções :

model.setNomeForn(String.valueOf(tfRazaoForn.getText())); model.setEndForn(String.valueOf(tfEndForn.getText())); model.setCidForn(String.valueOf(tfCidadeForn.getText())); model.setEmailForn(String.valueOf(tfEmailForn.getText())); model.setNomeVend(String.valueOf(tfNomeVendedor.getText())); model.setUfForn(String.valueOf(cbUf)); model.setCnpjForn(String.valueOf(tfCnpjForn.getText())); model.setTelForn(String.valueOf(tfTelForn.getText())); model.setTelVend(String.valueOf(tfTelVendedor.getText())); model.setCepForn(String.valueOf(tfCepForn.getText())); model.setDiaVizita(String.valueOf(cbDiaVizita)); model.setDiaEntrega(String.valueOf(cbDiaEntrega));

e Agora da dando o seguinte erro

[list]Exception in thread AWT-EventQueue-0 java.lang.NullPointerException

at fornecedores.ControllerCadForn$AcoesBotoes.actionPerformed(ControllerCadForn.java:52)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)

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:6216)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)

at java.awt.Component.processEvent(Component.java:5981)

at java.awt.Container.processEvent(Container.java:2041)

at java.awt.Component.dispatchEventImpl(Component.java:4583)

at java.awt.Container.dispatchEventImpl(Container.java:2099)

at java.awt.Component.dispatchEvent(Component.java:4413)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)

at java.awt.Container.dispatchEventImpl(Container.java:2085)

at java.awt.Window.dispatchEventImpl(Window.java:2475)

at java.awt.Component.dispatchEvent(Component.java:4413)

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)

[/list]
rhoribe

detalhe eu to com duvida ? como obetenho valor de um JComboBox eu estou fazendo assim

model.setUfForn(String.valueOf(cbUf));
ajfilho

Algum dos teus textfields está com o valor nulo.

Olha a linha 52.

Abraços!

ajfilho

[quote=rhoribe]detalhe eu to com duvida ? como obetenho valor de um JComboBox eu estou fazendo assim

model.setUfForn(String.valueOf(cbUf));

seuCombo.getSelectedItem(), se não me engano!

Abraços!

rhoribe

[quote=ajfilho]

rhoribe:
detalhe eu to com duvida ? como obetenho valor de um JComboBox eu estou fazendo assim

model.setUfForn(String.valueOf(cbUf));

seuCombo.getSelectedItem(), se não me engano!

Abraços!

pelo que eu vi aqui o camando fica assim

String.valueOf(combo.getSelectedItem());

Estou com mais um problema relacionado o BD, mas por hj eu acho que ja basta minhas , postagens, vou tentar resolver aqui soznho caso nao consiga postaria neste mesmo topico amanha.

Mas se alguem podesse me passar algum messenger para facilitar a comuniçação e o esclarecimento de minhas duvidas ficaria grato.

Criado 23 de junho de 2009
Ultima resposta 23 de jun. de 2009
Respostas 14
Participantes 3