Passa 3 vezes pela validade quando o jtextfield perde o focco

3 respostas
M

BOm meu problema é o seguinte, estou criando uma palicação, usando o nebeans, estou num cadastrinho bem básico tem os seguintes campo um campo código chave primária, um campo descrição, 2 campos código que é de chave estrangeira e seus respectivos campos descrição, até aí tranquilo. Quando o código da chave estrangeira é inválido so programa da uma mensagem e volta para o campo, só permite a saída do campo com um valor cadastrado no banco da tabela, se eu passar o foco para um outr campo texto da a mensagem corretamente, mas se eu passar para um botão o programa passa pelo validate do jtextfielde umas 3 ou 4 vezes…

alguém tem idéia do que está acontecendo?

grato pela atenção de todos

3 Respostas

marcosharbs

posta o codigo pra gente poder analisar

M

Segue o código como solicitado... grato pela atenção

txtBancoCod.setInputVerifier(new InputVerifier() {   
              public boolean verify(JComponent comp) {
                  boolean retval = true;
                  if (txtBancoCod.getText().equals("")){
                      
                  } else {
                  
                  ret = null;
                 
                    int retorno = 0;
                    Object[] opcoes = {"OK"};
                    RetCampoChaveEstrangeira_DO objRetorno = new RetCampoChaveEstrangeira_DO();
                    ret = objRetorno.RetCampoDescricao("TBBANCOS", "TBBANCOS_DESCRICAO", "TBBANCOS_CODIGO", Integer.parseInt(txtBancoCod.getText()));
                    txtBancoDesc.setText(ret);
                    if (ret == null){
                        retorno = JOptionPane.showOptionDialog(null, "Código do banco não cadastrado!",
                             "Atenção",JOptionPane.OK_OPTION, JOptionPane.WARNING_MESSAGE,
                            null, opcoes, opcoes[0]);
                        retval = false;
                    } else {
                        retval = true;
                    }

                  
                  }
                  return retval;
              }
              
            });



    public void actionPerformed(ActionEvent e) {
        Object origem = e.getSource();
        .
        .
        .
         if (origem == btnCancelar)
            dispose();
        else if (origem == btnConsultaBanco){
            
                frmConsultaBancos frmCosulta = new frmConsultaBancos();
                frmCosulta.setVisible(true);
                getDesktopPane().add(frmCosulta);
                try {
                    frmCosulta.setSelected(true);
                }catch (PropertyVetoException exc) { }
        }
        else if (origem == btnConsultaEmpresa){
            frmConsultaEmpresas frmCosulta = new frmConsultaEmpresas();
            frmCosulta.setVisible(true);
            getDesktopPane().add(frmCosulta);
            try {
                frmCosulta.setSelected(true);
            }catch (PropertyVetoException exc) { }
        }
    }


    public void focusGained(FocusEvent e) {
        
    }

    public void focusLost(FocusEvent evt) {

    }
M

Agora ficou melhor para visualizar…
se precisar de todo o código da classe é só me avisar que eu coloco…

Grato pela atenção

Criado 14 de janeiro de 2009
Ultima resposta 15 de jan. de 2009
Respostas 3
Participantes 2