Filtrar do jtable incorreto

estou com o seguinte problema,quando eu foi efetuar uma busca na minha tabela ele me retorna alguns campos só e não alocados em suas colunas. não sei o pq disso nunca tinha acontecido.se alguém poder me ajudar agradeço.
segue a imagem

codigo do frame

 private void limparTabela(){
           dtm.setNumRows(0);
      }
  private void prencherTabela(){
        try {
            HorarioServicos ps = ServicosFactory.getHorarioServicos();
           
            ArrayList<HorarioVO> prod = new ArrayList<>();
            
            prod = ps.buscarHorario();
             
            for(int i = 0; i < prod.size(); i++){
               dtm.addRow(new String[]{
                  String.valueOf(prod.get(i).getIdhorario()),
                  String.valueOf(prod.get(i).getNomecli()),
                  String.valueOf(prod.get(i).getTelefone()),                
                  String.valueOf(prod.get(i).getHora()),
                  String.valueOf(prod.get(i).getMinuto())
                 });
            }//fecha for
            
            
            jtAgenda.setModel(dtm);
            
        } catch (Exception e) {
         JOptionPane.showMessageDialog(
                        null,
                        "erro ao prencher tabela!",
                        "Mensagem de erro",
                        JOptionPane.ERROR_MESSAGE);
        }//fecha catch
    }//fecha prencher tabela
  
   private void deletar() {
        try {
              int linha = jtAgenda.getSelectedRow();
            
           
            if (linha == -1) {
        JOptionPane.showMessageDialog(
                        null,
                        "Você não selecionou nenhuma linha!",
                        "Mensagem de atenção",
                        JOptionPane.INFORMATION_MESSAGE);

            } else {
                HorarioServicos ps = ServicosFactory.getHorarioServicos();
                
                 String idProduto = (String) jtAgenda.getValueAt(linha, 0);
                
               
                 ps.deletar(Integer.parseInt(idProduto));

             
             JOptionPane.showMessageDialog(
                        null,
                        "horario excluido com sucesso!" ,
                        "Mensagem de confirmação",
                        JOptionPane.INFORMATION_MESSAGE);
            }//fecha else
        } catch (Exception e) {
     JOptionPane.showMessageDialog(
                        null,
                        "erro ao deletar!",
                        "Mensagem de erro",
                        JOptionPane.ERROR_MESSAGE);
        }//fecha catch        
    }//fecha deletar
   
   
    private void filtrar(){
        try {
            if (jtPesquisa.getText().isEmpty()) {
                prencherTabela();
            }else{
                HorarioServicos ps = ServicosFactory.getHorarioServicos();
               
                String pesquisa = (String) jcbPesquisa.getSelectedItem();
                
                  String query;
                
                switch(pesquisa){
                    
                    case "Código":
                        query = "where idhorario = " + jtPesquisa.getText();
                        break;
                    case "Cliente":
                       query = "where nomecli like '%"+ jtPesquisa.getText() + "%'";
                       break;
                    case "Telefone":
                        query = "where telefone like '%"+ jtPesquisa.getText() + "%'";
                        break;
                    case "Horas":
                        query = "where hora like '%"+ jtPesquisa.getText() + "%'";
                        break;
                   default:
                        query = "where minuto = "+jtPesquisa.getText();
                        break;
                }
                

                ArrayList<HorarioVO> prod = new ArrayList<>();               
                
                prod = ps.filtrarHorario(query);
                
                for (int i = 0; i < prod.size(); i++) {
                    dtm.addRow(new String[]{
                        String.valueOf(prod.get(i).getIdhorario()),
                        String.valueOf(prod.get(i).getNomecli()),
                        String.valueOf(prod.get(i).getHora()),
                        String.valueOf(prod.get(i).getMinuto())
                    });
                }//fecha for
                jtAgenda.setModel(dtm);                
            }//fecha else
        } catch (Exception e) {
     JOptionPane.showMessageDialog(
                        null,
                        "erro ao buscar dados!",
                        "Mensagem de erro",
                        JOptionPane.ERROR_MESSAGE);
        }//fecha catch        
    }//fecha filtrar

@Lucas_Matos
Boa noite amigo.
No método filtrar está faltando um campo da tabela, telefone.

 String.valueOf(prod.get(i).getTelefone()), 

Espero ter ajudado.

@Villagram bha pior nem tinha visto isso. vlw pela ajuda.