ERRO java.lang.NumberFormatException: For input string: "null"

6 respostas
israel.medolago

BOA TARDE.
ESTOU COMEÇANDO A PROGRAMAR EM JAVA.
ESTOU COM UM PROBLEMA NA HORA DE INCLUIR UM PRODUTO EM UMA TELA DE REGISTRO DE VENDAS…
OCORRE ESSE ERRO java.lang.NumberFormatException: For input string: “null”

MEU CODIGO É ESSE…
AGRADEÇO QUALQUER AJUDA…
T+

private boolean verificarQuantidade()

{

try

{

if (Integer.parseInt(String.valueOf(tffQuantidadeVenda.getValue())) > 0)

{

return true;

}

}

catch (NumberFormatException ex)

{

ex.printStackTrace();

}

return false;

}
private void incluirProduto()
{
    if (verificarQuantidade())
    {
        br.com.vendasoutro.negocio.Venda vb = new br.com.vendasoutro.negocio.Venda();
        vb.setProdutos_idProduto(produtos.get(cmbProduto.getSelectedIndex()).getIdProduto());
        vb.setQuantidadeVenda(Integer.parseInt(String.valueOf(tffQuantidadeVenda.getValue())));
        venda.add(vb);
        String produto = produtos.get(cmbProduto.getSelectedIndex()).getNomeProduto();
        String quantidade = String.valueOf(tffQuantidadeVenda.getValue());
        String valor = String.valueOf(produtos.get(cmbProduto.getSelectedIndex()).getValorProduto() * Integer.parseInt(quantidade));
        String [] campos = new String [] { produto, quantidade, valor};
        tmRegistrarVenda.addRow(campos);
        total += Double.parseDouble(valor);
        tffTotalVenda.setValue(total);
    }
    else
    {
        JOptionPane.showMessageDialog(this, "Quantidade Inválida!!!");
        tffQuantidadeVenda.requestFocus();
    }
}

6 Respostas

Danillo_Moreno

Cara, seja bem vindo ao forum…

Duas coisas: Não escreva em maiúsculo e coloque seus códigos dentro da tag < CODE >

Não analisei seu código, mas em algum momento ele está tentando converte um null para interio… O que gera o erro…

Abraço…

isaiaspf

O problema está em alguma das suas chamadas ao parseInt (Integer.parseInt).
Você está tentando converter pra int uma String que contém caracteres não numéricos ou é nula.
Alguns casos em que a exceção é lançada:Integer.parseInt(null); Integer.parseInt("a"); Integer.parseInt(""); Integer.parseInt(" "); Integer.parseInt("1a");

adriano_si

Opa, bem vindo ao fórum, por favor adeque seu tópico às regras, nos ajudará a lhe ajudar e ajudará você.

Cara, percebi algo que me deixou confuso.

vb.setQuantidadeVenda(Integer.parseInt(String.valueOf(tffQuantidadeVenda[b].getValue()[/b])));

Negritei pra você o que eu achei confuso, se bem me lembro, pegamos valores dos TextFields através da propriedade .getText()

Pode ser que o getValue() esteja retornando uma String com o name do componente… enfim, posso estar errado, foi só um chute torto.

Abs[] e bons estudos.

israel.medolago

Deu certo…
Muito Obrigado…

isaiaspf

Ótimo. Só coloca como [RESOLVIDO].

WellingtonRamos

adriano_si:
Opa, bem vindo ao fórum, por favor adeque seu tópico às regras, nos ajudará a lhe ajudar e ajudará você.

Cara, percebi algo que me deixou confuso.

vb.setQuantidadeVenda(Integer.parseInt(String.valueOf(tffQuantidadeVenda[b].getValue()[/b])));

Negritei pra você o que eu achei confuso, se bem me lembro, pegamos valores dos TextFields através da propriedade .getText()

Pode ser que o getValue() esteja retornando uma String com o name do componente… enfim, posso estar errado, foi só um chute torto.

Abs[] e bons estudos.

Creio que ele esteja utilizando um JFormattedTextField que possui o getValue como opção. Se utilizado em conjunto com algum Formatter, o mesmo pode retornar algo diferente de String como um Date, Integer, Double, BigDecimal, etc.
Caso seja usada sem isso e, dependendo do momento, antes de usar o getValue, é necessário “consistir” o componente (o getText está com valor mas o getValue não).

Como ele só colocou a mensagem de erro, sem o StackTrace, fica mais dificil analisar onde pode haver o erro.
Minha sugestão é depurar o método e verificar se algum lugar está retornando null ou alguma variável não foi instanciada.

Criado 9 de agosto de 2011
Ultima resposta 9 de ago. de 2011
Respostas 6
Participantes 5