Pequeno problema de IF()

10 respostas
C

Olá colegas,

Fiz um formulário, e estava fazendo um IF() para no caso, quando o cliente clicar em SALVAR a primeira coisa que o código vai ver é se ele deixou em branco o campo NOME. Se deixou em branco ele não continua o resto da gravação e para ali dando uma mensagem. Eu fiz só não reconhece.

private void jButtonSalvarActionPerformed(java.awt.event.ActionEvent evt) {                                              

    Cliente cliente = new Cliente();

            boolean ok = true;
            
            cliente.nome=jTextNome.getText();
            
            if( cliente.nome == "" ){
                ok = false;
                JOptionPane.showMessageDialog(null,"Por favor, preencha o Campo Nome");
            }

            if(ok == true){

                      //RESTO DO CÓDIGO....

            }
Estas linhas que não esta dando certo:
if( cliente.nome == "" ){
                ok = false;
                JOptionPane.showMessageDialog(null,"Por favor, preencha o Campo Nome");
            }

Como posso resolver isto?

Grato pela atenção.

10 Respostas

thegoergen

O cliente.nome não é booleano… coloque:

if( (cliente.nome.trim().length() == 0 )){
tnaires

Olá
Seu if deveria ficar assim:

if (cliente.nome == null || "".equals(cliente.nome)) { ok = false; JOptionPane.showMessageDialog(null,"Por favor, preencha o Campo Nome"); }
Além disso, essa validação não deveria estar na interface gráfica, e sim, no construtor da classe Cliente.

C

pow acabei de edita meu código que postei. Eu me esqueci de coloca o cliente.nome == ""

Vou ver aqui…

C

thegoergen

Você que esta online, eu só declarei como booleano o ok.

Bom, eu usei este IF:

if (cliente.nome == null || "".equals(cliente.nome))

Tu poderia me explicar o quer dizer este if? e porque de colocalo na classe cliente?

Grato.

thegoergen

Bom… esse IF verifica se o que foi digitado está nulo ( não recebeu valor nenhum, sempre é bom testar isso ), ou então recebeu um valor vazio.
Aquele segundo teste é o que tu quis fazer, mas não se compara Strings com ==, sempre com o método equals.

E colocar isso na classe cliente é uma questão de arquitetura do código: A tela é só uma tela, ou seja. ela mostra coisas pro usuário e pega informações do usuário, as validações são um “nível abaixo”.

O

if( cliente.nome.equals("")){ ok = false; JOptionPane.showMessageDialog(null,"Por favor, preencha o Campo Nome"); }

Quando for comparar String use o equals.

C

thegoergen ,

mas eu tambem testei antes de postar aqui o if( cliente.nome == null ) e não funcionava.

Mas de qualquer forma agora está funcionando.

Aguardo sua resposta. Muito obrigado. Fique com Deus.

thegoergen

É que quando tu deixa em branco, vem uma String vazia, e não um null, por isso que não funcionava.

na verdade, teu erro se resumiu a comparar as Strings com ==

adriano_si

é porque o getText() retorna um valor == “” e vc estava testando só se era igual a null e não era…

Falows :wink:

C

Gracias. :smiley:

Criado 25 de novembro de 2008
Ultima resposta 25 de nov. de 2008
Respostas 10
Participantes 5