JTextField int com bando de dados [RESOLVIDO]

ola pessoal tudo bem

esto com o seguinte problema aqui na minha aplicaçao e assim criei uns jTextField para as pessoas colocar a quantidade de cada coisa
no banco de dados os campos da tabela ta como int e na hora que ocorre o evento eu ja converti as entrada de string para int mas so que quando nao coloco nada o campo deixo ele nulo tipo sem nada ele nao grava no banco da errro de

java.lang.NumberFormatException: For input string: “”

alguem pode me dar uma luz sobre issso aqui apenas um modo como eu possa fazer

fiz ate um metodo desse mas acho que nao deu muito certo

public void verItens(JTextField  c){
       
       int a = 0;

      if (c.getText() == null){

         a = Integer.parseInt(c.getText());
          

      }
}

a conversao foi feita desse modo de tira de string para int

int ar =  Integer.parseInt(arroz.getText());

Olá, erato!

Tente o método equals para esse tipo de caso.

if (c.getText.equals("")) {

   JOptionPane.showMessageDialog(null, "Não se pode converter um campo sem valor!");
}
else {

 // Faz sua conversão
}

Tente algo nesse estilo. Talvez dê certo. Poste aqui o que aconteceu quando tentar.

Espero ter ajudado!

[]'s

nao esta indo amigo tipo gostaria de fazer de ele ver se o campo esta null coloca a zero.
tipo o usuario nao pode colocar nada no campo mas ele passa para o banco como que aquele campo o valor dele iria ser 0 mas nao esto conseguindo fazer por isso queria uma dica como a que voçe me deu mas nao foi

:cry:

Vc está colocando uma conversão para um objeto nulo.

Verifique a sua condição if.

if (c.getText() != null){  
    a = Integer.parseInt(c.getText());              
}else{
    a = 0;
}

Essa seria a forma correta.

Olá Erato.
Se não se importasse gostaria de pedir que escreva com um português mais claro, você não coloca vírgula nem ponto final nas frases, acho q por isso ficou difícil de entender sua dúvida. Mas vamos lá
Deixa ver se eu entendi:

Você quer que quando o camarada não digita nada no campo, e quando ocorrer o evento, ou seja, quando clicar em um botão por exemplo, o valor no banco entre como ZERO(0) certo?

Então você pode fazer assim:

[code] public void verItens(JTextField c){

       int a;
  
      if (c.getText().equals("")){  
         a = 0;
     }else{
        a = Integer.parseInt(c.getText().trim());
     }

}
[/code]

Espero que não se importe com a dica que eu te dei, será bem mais claro para todos entenderem se você botar pontuação nas suas frases :lol:

Vê se dá certo, e edite seu tópico como [RESOLVIDO], ou poste qualquer dúvida. Tamos aí pra ajudar! :smiley:

EDIT: Lembrando que o JTextField não é interpretado como NULL, caso não se digite nada nele, e sim como “”, ou seja, como uma String vazia

a.moraissoares valeu pela a dica as vezes eu escrevo tudo confuso !!!

haahahahahaha

mas ainda nao ta indo esta , esto com o mesmo problema de :

Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: For input string: “”

esta indo assim meu codigo

obs: esse e meu evento para salva no banco esta assim:

verItens(cesta);
       int ces = Integer.parseInt(cesta.getText());
       int ar =  Integer.parseInt(arroz.getText());
       int fe =  Integer.parseInt(feijao.getText());
       int ac =  Integer.parseInt(acucar.getText());
       int sa =  Integer.parseInt(sal.getText());
       int ma =  Integer.parseInt(macarrao.getText());
       int le =  Integer.parseInt(leite.getText());
       int fa =  Integer.parseInt(farinha.getText());
       int ol =  Integer.parseInt(oleo.getText());
       int ca =  Integer.parseInt(cafe.getText());

       CadCestaDB  cs = new CadCestaDB();
       cs.inserir(ces, ar, fe, ac, sa, ma, le, fa, ol, ca);

usei o metodo ver itens como voçe me falo , so mais uma coisa essse metodo inserir so aceita int

Opa!!! Hehehe. Efeito bate-papo na net faz isso com todo mundo! hehehe

Bom, parece que ele está tentando converter uma String "", ou " " para INT.
É importante SEMPRE, você dar um .trim() sempre que você pegar um campo de um JTextField, pois o usuário pode apertar espaço antes ou depois de digitar.
O .trim() vai retirar espaços brancos antes e depois do final da String digitada. Então quando você for pegar dados dos campos, não se esqueça do .trim(). Talvez seja isso

Tenta aí e nos fale. Até!

bem o bom e que agora e que ele salva com espaço, mas sem digitar nada no campo ainda nao vai da o mesmo errro.

Confesso que está bem estranho isso pra mim. Você tem que verificar se tem algo digitado no campo em todos os casos. Veja só:

[code]verItens(cesta);
int ces = 0;
int ar = 0;
int fe = 0;
int ac = 0;
int sa = 0;
int ma = 0;
int le = 0;
int fa = 0;
int ol = 0;
int ca = 0;

if (!cesta.getText().trim().equals("")){
ces = Integer.parseInt(cesta.getText().trim());
}
if (!ar.getText().trim().equals("")){
ar = Integer.parseInt(arroz.getText().trim());
}
if (!fe.getText().trim().equals("")){
feijao = Integer.parseInt(feijao.getText().trim());
}
[/code]
e assim por diante até verificar todos.
depois

CadCestaDB cs = new CadCestaDB(); cs.inserir(ces, ar, fe, ac, sa, ma, le, fa, ol, ca);

Dessa forma, todos os valores começam valendo 0, e caso em algum campo, o usuário tenha digitado algo, ele atribui pegando do campo, dando trim, e convertendo pra inteiro. TEM QUE DAR CERTO! hehehe

a.moraissoares hahahahaha

nossa ate que fim coseguimos mas tive qe tirar a chamada do methodo

verItens(cesta);

ai foi normal so nao intendi o porque se ele faz qualse a mesma coisa !!!

mas valeu obrigado!!!

Opa. Que bom que deu certo.
Quanto à sua chamada do método pouco posso dizer, pois faz parte da lógica da sua aplicação.

Bota um [RESOLVIDO] no título do tópico para que outros saibam que não precisa mais de ajuda.

EDIT: opa, [RESOLVIDO] hehe