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

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?!!

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");
         }

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?!!

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.

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?!