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();
}
}
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…
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");
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.
Deu certo…
Muito Obrigado…
Ótimo. Só coloca como [RESOLVIDO].
[quote=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.[/quote]
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.