Ajuda para validar campos JFormattedTextField

Galera sou iniciante e preciso de ajuda para validar campos JFormattedTextField. Já usei isempty, equals “”, ==0 e null e nada funcionou…
Os campos sem mascara funciona a validação, porém os campos com formatação (telefone, cpf, rg) não passam pelo if…
Alguém poderia me ajudar? Código abaixo…

Obrigado

private void jbNovoActionPerformed(java.awt.event.ActionEvent evt) {                                       
   flag = 1;
   jbSalvar.setEnabled(true);
   jbNovo.setEnabled(false);
   jtCod.setText("");
   jFormattedTextFieldTelefone.setText("");
   jtEndereco.setText("");
   jtComplemento.setText("");
   jFormattedTextFieldCPF.setText("");
   jFormattedTextFieldRG.setText("");
   jtNome.setText("");
   jtNome.setEnabled(true);
   jFormattedTextFieldTelefone.setEnabled(true);
   jtEndereco.setEnabled(true);
   jtComplemento.setEnabled(true);
   jFormattedTextFieldCPF.setEnabled(true);
   jFormattedTextFieldRG.setEnabled(true);
   jbCancelar.setEnabled(true);
   jtBairro.setEnabled(true);
}                                      

private void jbSairActionPerformed(java.awt.event.ActionEvent evt) {                                       
            dispose();
}                                      

private void jbSalvarActionPerformed(java.awt.event.ActionEvent evt) {                                         
     if(flag == 1){
         // se para obrigar a prencher todos os campos!
       if((jtNome.getText().length()==0)||(jtNome.getText().isEmpty())){
       JOptionPane.showMessageDialog(null, "Campo nome é obrigatório!");
       } else if ((jtEndereco.getText().length()==0)||jtEndereco.getText().isEmpty()){
       JOptionPane.showMessageDialog(null, "Campo Endereço é obrigatório!");
       }
       else if((jtComplemento.getText().length()==0)||(jtComplemento.getText().isEmpty())){
       JOptionPane.showMessageDialog(null, "Campo número é obrigatório!");}
        
       else if((jtBairro.getText().length()==0)||(jtBairro.getText().isEmpty())){
       JOptionPane.showMessageDialog(null, "Campo bairro é obrigatório!");}
        
       else if((jFormattedTextFieldCPF.getText().length()==0)||(jFormattedTextFieldCPF.getText().isEmpty())){
       JOptionPane.showMessageDialog(null, "Campo CPF é obrigatório!");}
        
       else if((jFormattedTextFieldRG.getText().length()==0)||(jFormattedTextFieldRG.getText().isEmpty())){
       JOptionPane.showMessageDialog(null, "Campo RG é obrigatório!");}
        
       else if((jFormattedTextFieldTelefone.getText().length()==0)||(jFormattedTextFieldTelefone.getText().isEmpty())){
       JOptionPane.showMessageDialog(null, "Campo telefone é obrigatório!");}
         
         else{
       mod.setNome(jtNome.getText().toUpperCase());
       mod.setTelefone(jFormattedTextFieldTelefone.getText());
       mod.setEnd(jtEndereco.getText().toUpperCase());
       mod.setComplemento(jtComplemento.getText());
       mod.setCpf(jFormattedTextFieldCPF.getText());
       mod.setRg(jFormattedTextFieldRG.getText());
       mod.setBairro(jtBairro.getText().toUpperCase());
       control.Grava(mod);
       //bloqueando botoes e limpando os campos
         jbSalvar.setEnabled(!true);
         jbNovo.setEnabled(!false);
         jtCod.setText("");
         jFormattedTextFieldTelefone.setText("");
         jtEndereco.setText("");
         jtComplemento.setText("");
         jFormattedTextFieldCPF.setText("");
         jFormattedTextFieldRG.setText("");
         jtNome.setText("");
         jtNome.setEnabled(!true);
         jFormattedTextFieldTelefone.setEnabled(!true);
         jtEndereco.setEnabled(!true);
         jtComplemento.setEnabled(!true);
         jFormattedTextFieldCPF.setEnabled(!true);
         jFormattedTextFieldRG.setEnabled(!true);
         jbCancelar.setEnabled(!true);
         jtBairro.setEnabled(!true);
       preencherTabela("select * from cliente");
       }
       }else{
         if((jtNome.getText().length()==0)||(jtNome.getText().isEmpty())){
       JOptionPane.showMessageDialog(null, "Campo nome é obrigatório!");
       } else if ((jtEndereco.getText().length()==0)||jtEndereco.getText().isEmpty()){
       JOptionPane.showMessageDialog(null, "Campo Endereço é obrigatório!");
       }
       else if((jtComplemento.getText().length()==0)||(jtComplemento.getText().isEmpty())){
       JOptionPane.showMessageDialog(null, "Campo número é obrigatório!");}
        
       else if((jtBairro.getText().length()==0)||(jtBairro.getText().isEmpty())){
       JOptionPane.showMessageDialog(null, "Campo bairro é obrigatório!");}
        
       else if((jFormattedTextFieldCPF.getText().length()==0)||(jFormattedTextFieldCPF.getText().isEmpty())){
       JOptionPane.showMessageDialog(null, "Campo CPF é obrigatório!");}
        
       else if((jFormattedTextFieldRG.getText().length()==0)||(jFormattedTextFieldRG.getText().isEmpty())){
       JOptionPane.showMessageDialog(null, "Campo RG é obrigatório!");}
        
       else if((jFormattedTextFieldTelefone.getText().length()==0)||(jFormattedTextFieldTelefone.getText().isEmpty())){
       JOptionPane.showMessageDialog(null, "Campo telefone é obrigatório!");}
       else{
         mod.setId(Integer.parseInt(jtCod.getText()));             
         mod.setNome(jtNome.getText().toUpperCase());
         mod.setTelefone(jFormattedTextFieldTelefone.getText());
         mod.setEnd(jtEndereco.getText().toUpperCase());
         mod.setComplemento(jtComplemento.getText().toUpperCase());
         mod.setCpf(jFormattedTextFieldCPF.getText());
         mod.setRg(jFormattedTextFieldRG.getText());
         mod.setBairro(jtBairro.getText().toUpperCase());
        control.Editar(mod); //chamando metodo de editar
        
        //bloqueando botoes e limpando os campos
         jbSalvar.setEnabled(!true);
         jbNovo.setEnabled(!false);
         jtCod.setText("");
         jFormattedTextFieldTelefone.setText("");
         jtEndereco.setText("");
         jtComplemento.setText("");
         jFormattedTextFieldCPF.setText("");
         jFormattedTextFieldRG.setText("");
         jtNome.setText("");
         jtNome.setEnabled(!true);
         jFormattedTextFieldTelefone.setEnabled(!true);
         jtEndereco.setEnabled(!true);
         jtComplemento.setEnabled(!true);
         jFormattedTextFieldCPF.setEnabled(!true);
         jFormattedTextFieldRG.setEnabled(!true);
         jbCancelar.setEnabled(!true);
         jtBairro.setEnabled(!true);
    preencherTabela("select * from cliente");
         }
    }
   
}                                        

private void jbEditarActionPerformed(java.awt.event.ActionEvent evt) {                                         
     // AtualizaCombo();
      preencherTabela("select * from cliente");
        flag=2;
     jtNome.setEnabled(true);
     jFormattedTextFieldTelefone.setEnabled(true);
     jtEndereco.setEnabled(true);
     jtComplemento.setEnabled(true);
     jFormattedTextFieldCPF.setEnabled(true);
     jFormattedTextFieldRG.setEnabled(true);
     jtBairro.setEnabled(true);
     jbExcluir.setEnabled(false);
     jbSalvar.setEnabled(true);
     jbCancelar.setEnabled(true);
     jbEditar.setEnabled(false);
     jbNovo.setEnabled(false);
     
}                                        

private void jbExcluirActionPerformed(java.awt.event.ActionEvent evt) {                                          
   resposta = JOptionPane.showConfirmDialog(rootPane, "Deseja realmente excluir?");
   if(resposta ==JOptionPane.YES_OPTION){
    mod.setId(Integer.parseInt(jtCod.getText()));
    control.Excluir(mod);
   jbSalvar.setEnabled(!true);
   jbNovo.setEnabled(!false);
   jtCod.setText("");
   jFormattedTextFieldTelefone.setText("");
   jtEndereco.setText("");
   jtComplemento.setText("");
   jFormattedTextFieldCPF.setText("");
   jFormattedTextFieldRG.setText("");
   jtNome.setText("");
   jtNome.setEnabled(!true);
   jFormattedTextFieldTelefone.setEnabled(!true);
   jtEndereco.setEnabled(!true);
   jtComplemento.setEnabled(!true);
   jFormattedTextFieldCPF.setEnabled(!true);
   jFormattedTextFieldRG.setEnabled(!true);
   jbCancelar.setEnabled(!true);
   jtBairro.setEnabled(!true);
   preencherTabela("select * from cliente");
   }
}                                         

private void jbCancelarActionPerformed(java.awt.event.ActionEvent evt) {                                           
   jbSalvar.setEnabled(!true);
   jbNovo.setEnabled(!false);
   jtCod.setText("");
   jFormattedTextFieldTelefone.setText("");
   jtEndereco.setText("");
   jtComplemento.setText("");
   jFormattedTextFieldCPF.setText("");
   jFormattedTextFieldRG.setText("");
   jtNome.setText("");
   jtCod.setText("");
   jtNome.setEnabled(!true);
   jFormattedTextFieldTelefone.setEnabled(!true);
   jtEndereco.setEnabled(!true);
   jtComplemento.setEnabled(!true);
   jFormattedTextFieldCPF.setEnabled(!true);
   jFormattedTextFieldRG.setEnabled(!true);
   jbCancelar.setEnabled(!true);
   jtBairro.setEnabled(!true);
}                                          

private void jtPesquisaActionPerformed(java.awt.event.ActionEvent evt) {                                           
    // TODO add your handling code here:
}                                          

private void jbPesquisarActionPerformed(java.awt.event.ActionEvent evt) {                                            
   mod.setPesquisa(jtPesquisa.getText());
   ModeloClientes model = control.buscaCliente(mod);
   jtCod.setText(String.valueOf(model.getId()));
   jtNome.setText(model.getNome());
   jtComplemento.setText(model.getComplemento());
   jtBairro.setText(model.getBairro());
   jtEndereco.setText(model.getEnd());
   jFormattedTextFieldCPF.setText(model.getCpf());
   jFormattedTextFieldRG.setText(model.getRg());
   jbEditar.setEnabled(true);
   jbExcluir.setEnabled(true);
   preencherTabela("select * from cliente where cli_nome like '%"+jtPesquisa.getText().toUpperCase()+"%' order by cli_nome");
}                                           

private void jtableClientesMouseClicked(java.awt.event.MouseEvent evt) {                                            
      String nome_cliente = ""+jtableClientes.getValueAt(jtableClientes.getSelectedRow(), 1);
    
    con.conexao();
    con.executaSQL("select *from cliente where cli_nome='"+nome_cliente+"'");
     try {
         con.rs.first();
         jtCod.setText(String.valueOf(con.rs.getInt("cli_codigo")));
         jtNome.setText(con.rs.getString("cli_nome"));
         jtEndereco.setText(con.rs.getString("cli_end"));
         jtComplemento.setText(con.rs.getString("cli_complemento"));
         jFormattedTextFieldTelefone.setText(con.rs.getString("cli_telefone"));
         jFormattedTextFieldRG.setText(con.rs.getString("cli_rg"));
         jFormattedTextFieldCPF.setText(con.rs.getString("cli_cpf"));
         jtBairro.setText(con.rs.getString("cli_bairro"));
         con.desconecta();
         
     } catch (SQLException ex) {
         JOptionPane.showMessageDialog(rootPane,"Erro ao selecionar os dados!\nERRO:"+ ex);
     }
     jbEditar.setEnabled(true);
     jbExcluir.setEnabled(true);
}                                           

private void jFormattedTextFieldTelefoneActionPerformed(java.awt.event.ActionEvent evt) {                                                            
    // TODO add your handling code here:
}                                                           
public void preencherTabela(String Sql){
    ArrayList dados = new ArrayList();
    
    String [] Colunas = new String []{"ID","Nome","Telefone","Endereço","Número","Bairro","CPF","RG"};
    con.conexao();
    con.executaSQL(Sql);
 try {
     con.rs.first();
     do{
        dados.add(new Object[]{con.rs.getInt("cli_codigo"),con.rs.getString("cli_nome"),con.rs.getString("cli_telefone"),con.rs.getString("cli_end"),con.rs.getString("cli_complemento"),con.rs.getString("cli_bairro"),con.rs.getString("cli_cpf"),con.rs.getString("cli_rg")});
        }while(con.rs.next());
 }catch (SQLException ex) {
     JOptionPane.showMessageDialog(rootPane,"Dados não disponíveis\n ERRO:"+ex );
 }
    ModeloTabela modelo = new ModeloTabela(dados, Colunas);
   
    jtableClientes.setModel(modelo);
    jtableClientes.getColumnModel().getColumn(0).setPreferredWidth(23);
    jtableClientes.getColumnModel().getColumn(0).setResizable(false);
    jtableClientes.getColumnModel().getColumn(1).setPreferredWidth(190);
    jtableClientes.getColumnModel().getColumn(1).setResizable(false);
    jtableClientes.getColumnModel().getColumn(2).setPreferredWidth(90);
    jtableClientes.getColumnModel().getColumn(2).setResizable(false);
    jtableClientes.getColumnModel().getColumn(3).setPreferredWidth(175);
    jtableClientes.getColumnModel().getColumn(3).setResizable(false);
    jtableClientes.getColumnModel().getColumn(4).setPreferredWidth(70);
    jtableClientes.getColumnModel().getColumn(4).setResizable(false);
    jtableClientes.getColumnModel().getColumn(5).setPreferredWidth(150);
    jtableClientes.getColumnModel().getColumn(5).setResizable(false);
    jtableClientes.getColumnModel().getColumn(6).setPreferredWidth(100);
    jtableClientes.getColumnModel().getColumn(6).setResizable(false);
    jtableClientes.getTableHeader().setReorderingAllowed(false);
    jtableClientes.setAutoResizeMode(jtableClientes.AUTO_RESIZE_OFF);
    jtableClientes.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 
    con.desconecta();
}

   
/**
 * @param args the command line arguments
 */
public static void main(String args[]) {
    /* Set the Nimbus look and feel */
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
     * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
     */
    try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(CadClientes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(CadClientes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(CadClientes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(CadClientes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }
    //</editor-fold>

    /* Create and display the form */
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new CadClientes().setVisible(true);
                
        }
    });
}

// Variables declaration - do not modify                     
private javax.swing.JFormattedTextField jFormattedTextFieldCPF;
private javax.swing.JFormattedTextField jFormattedTextFieldRG;
private javax.swing.JFormattedTextField jFormattedTextFieldTelefone;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JButton jbCancelar;
private javax.swing.JButton jbEditar;
private javax.swing.JButton jbExcluir;
private javax.swing.JButton jbNovo;
private javax.swing.JButton jbPesquisar;
private javax.swing.JButton jbSair;
private javax.swing.JButton jbSalvar;
private javax.swing.JTextField jtBairro;
private javax.swing.JTextField jtCod;
private javax.swing.JTextField jtComplemento;
private javax.swing.JTextField jtEndereco;
private javax.swing.JTextField jtNome;
private javax.swing.JTextField jtPesquisa;
private javax.swing.JTable jtableClientes;
// End of variables declaration                   

}

Acontece que ele realmente não retorna vazio, pois retorna os caracteres da máscara. Então, você poderia criar um método de validação que retira os caracteres da máscara e aí verifica se está ou não vazio.
Ex:

private void validarCep(){
   String cep = jFormattedTextField.getText();
   //considerando que a máscara é #####-###, só é preciso dar replace em "-"
   cep = cep.replace("-", ""); 
  if(cep.trim().length() == 0){
        System.out.println("cep está vazio");
    }
}