Problemas com meu metodo de validação de um JtextField

4 respostas
willricardo

Buenas pessoal,

Estou com um probleminha em meu metodo logo abaixo, se eu não preencher nada em meu jtextfield tem que exibir um JOptionPane, porém o cara aparece duas vezes tendo que clicar em ok duas vezes para retornar o foco no JTextField.

Segue meu metodo:

public void validaTextField1(JTextField qtd1,JTextField tlQtd){
        if(qtd1.getText().equals("")){
            qtd1.grabFocus();
            JOptionPane.showMessageDialog(null, "Digite a quantidade de notas", 
                    "Obrigatorio!!",JOptionPane.WARNING_MESSAGE );          
        }
        else{
           String valorTextField1 = qtd1.getText();
           int valorConvTextField1 = Integer.parseInt(valorTextField1);
           int valorTotalTextField1 = valorConvTextField1 * 2;
           String valorTotalConvTextField1 = Integer.toString(valorTotalTextField1);
           tlQtd.setText(valorTotalConvTextField1);
           
        }
    }

Segue o evento que chamo o metodo:

private void jTextFieldQtdProdNotaMercTrans1FocusLost(java.awt.event.FocusEvent evt) {
// instanciando a classe PanelTlMercTransp e chamar o metodo validaTextField1

    PanelTlMercTransp qtd1 = new PanelTlMercTransp();
    qtd1.validaTextField1(jTextFieldQtdProdNotaMercTrans1, jTextField29);
}

Alguem pode me ajudar a resolver este probleminha?!!

4 Respostas

leandrovrb

ola. acontece que fazer comparações em TestFiel as vezes vc somente instanciar qtd1.getText().equals("") pode fazer q contenha espaços e dar problemas.entao use o.trim() apos para eleminar estes espaços.abaixo vai um exemplo facil abaixo:

if(tfCodigoParcela.getText().trim().equals(""))
        {
            JOptionPane.showMessageDialog(null,"Primeiro selecione uma parcela a pagar");
        }
        if(tfValorPagar.getText().trim().equals(""))
        {
            JOptionPane.showMessageDialog(null,"Digite o valor a pagar");
        }
        else
        { JOptionPane.showMessageDialog(null,"Digite o valor a receber");
         }
willricardo

Leandro, valeu pela dica, gostei muito do .trim

Porém ainda não resolve meu problema, parece que meu foco esta saindo duas vezes do jTextField, pois ele explodi na tela o JOptionPane duas vezes.

ALguem tem alguma dica?!!

M

Já tentou inverter a ordem dos comandos? Se o que estiver no JTextField for igual a “”, primeiro mostra o JOptionPane e depois usa o grabFocus(). Não sei se isso ajuda, mas a alteração no foco pode ser uma possível causa.

willricardo

Então eu já mudei o a ordem como você falou acima, porém quando compilo o JOptionPane aparece 4 vezes.

Sera que tem alguma outra forma de fazer isso?!

Criado 27 de janeiro de 2009
Ultima resposta 28 de jan. de 2009
Respostas 4
Participantes 3