Galera, como faço pra não executar o evento focuslost de um jtextfield quando eu clicar em um botão de fechar a janela.
Seguinte, tenho minha tela que o cara digita o código quando ele sair do campo eu faço uma verificação pra ver se o código existe, caso não exista eu exibo um joptionpane, até aí blz. O problema é que eu tenho um botão na janela utilizado pra dar um dispose nela, então quando clico nele o evento focuslost do jtexfield é executado, exibindo assim o Joptionpane novamente.
Tentei fazer uma verificação de qual objeto estava chamando o focuslost, mais já percebi que isso ta errado. Mas segue o meu código.
private void PerderFoco(java.awt.event.FocusEvent evt) {
if (evt.getComponent() instanceof JTextField)
{
try
{
ServicoBDAO servico = new ServicoBDAO();
JTextField tf = (JTextField) evt.getComponent();
String zeros = "0000" + tf.getText().trim();
tf.setText(zeros.substring(zeros.length() - 4));
int codformatado = Integer.parseInt(tf.getText().trim());
ResultSet rs = servico.selectCategoria(Integer.toString(codformatado), "1");
if ((rs.next() == false) || (rs == null))
{
tf.setEnabled(true);
rs.close();
JOptionPane.showMessageDialog(null,"Código não Cadastrado","Atenção",JOptionPane.INFORMATION_MESSAGE);
}
else
{
jTextFieldNome.setText(rs.getString(2));
}
}
catch (SQLException ex)
{
Logger.getLogger(ValidarCodigoCategoria.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Obrigado galera…