Erro ao carregar uma tabela

Boa tarde galera, não consigo encontrar o problema numa tela que estou fazendo para pesquisa de funcionários que estou desenvolvendo. Já possuo outras telas com o código similar que rodam perfeitamente, mas esta apresenta o seguinte erro:

compile-single:
run-single:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at speed.TelaPesquisarFuncionario.carregarTabela(TelaPesquisarFuncionario.java:58)
        at speed.TelaPesquisarFuncionario.<init>(TelaPesquisarFuncionario.java:30)
        at speed.TelaPesquisarFuncionario$2.run(TelaPesquisarFuncionario.java:173)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:602)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)

o meu código é este:

package speed;

import java.awt.event.KeyEvent;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;

/**
 *
 * @author  Scatolin
 */
public class TelaPesquisarFuncionario extends javax.swing.JDialog {

    private FuncionariosDAO daoFuncionario;
    private DefaultTableModel modelo;
    private String parametro = " 1 = 1 ";
    /** Creates new form TelaPesquisarFuncionario */
    public TelaPesquisarFuncionario() {
        
        initComponents();
        jTextFieldFiltro.setText("");
//        jTextFieldFiltro.requestFocus();
        
        carregarTabela();
    }

    public TelaPesquisarFuncionario( String parametro1) {

        initComponents();
        jTextFieldFiltro.setText("" + parametro1);
//        jTextFieldFiltro.requestFocus();
        carregarTabela();        
    }
    
    int getCodigo(){
        int codigo = Integer.parseInt(jTableFuncionarios.getValueAt(jTableFuncionarios.getSelectedRow(), 0).toString());
        return codigo;
    }
    
    void carregarTabela(){

        Vector colunas = new Vector();
        colunas.addElement("CÓDIGO");
        colunas.addElement("NOME");
        colunas.addElement("ENDEREÇO");
        colunas.addElement("TEL. RESID");
        colunas.addElement("CELULAR");
        colunas.addElement("CARGO");
        colunas.addElement("ADMISSÃO");
        Vector linhas = new Vector();
        parametro = " nome like '" + jTextFieldFiltro.getText().toUpperCase() + "%'";
        Vector<Funcionarios> funcionarios = daoFuncionario.selecionar(parametro);
        for (int i = 0; i < funcionarios.size(); i++) {
            Funcionarios f = funcionarios.elementAt(i);
            Vector novaLinha = new Vector();
            novaLinha.addElement("" + f.getCod_funcionario());
            novaLinha.addElement("" + f.getNome());
            novaLinha.addElement("" + f.getEndereco());
            novaLinha.addElement("" + f.getTelefone());
            novaLinha.addElement("" + f.getCelular());
            novaLinha.addElement("" + f.getCargo());
            novaLinha.addElement("" + f.getAdmissao());
            linhas.addElement(novaLinha);

        }
        modelo = new DefaultTableModel(linhas, colunas);
        jTableFuncionarios.setModel(modelo);

        // ARRUMA LARGURA DAS COLUNAS
        TableColumnModel tcModel = jTableFuncionarios.getColumnModel();
        tcModel.getColumn(0).setPreferredWidth(50);
        tcModel.getColumn(1).setPreferredWidth(200);
        tcModel.getColumn(2).setPreferredWidth(50);
        tcModel.getColumn(3).setPreferredWidth(90);
        tcModel.getColumn(4).setPreferredWidth(90);
        tcModel.getColumn(5).setPreferredWidth(200);
        tcModel.getColumn(6).setPreferredWidth(200);

        jTableFuncionarios.updateUI();
        jTableFuncionarios.selectAll();        
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jTextFieldFiltro = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTableFuncionarios = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("SPEED - Pesquisa de Funcionários");

        jTextFieldFiltro.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jTextFieldFiltroKeyPressed(evt);
            }
        });

        jLabel1.setText("Filtro");

        jTableFuncionarios.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {

            }
        ));
        jScrollPane1.setViewportView(jTableFuncionarios);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 1181, Short.MAX_VALUE)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabel1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextFieldFiltro, javax.swing.GroupLayout.DEFAULT_SIZE, 1153, Short.MAX_VALUE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(jTextFieldFiltro, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(36, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

private void jTextFieldFiltroKeyPressed(java.awt.event.KeyEvent evt) {                                            
// TODO add your handling code here:
    parametro = " nome like '" + jTextFieldFiltro.getText().toUpperCase() + "%'";
    carregarTabela();

    if (evt.getKeyCode() == KeyEvent.VK_ENTER){
        dispose();
        evt.setKeyCode(KeyEvent.VK_ESCAPE);
    }
    if (evt.getKeyCode() == KeyEvent.VK_ESCAPE){
        dispose();
    }
}                                           

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                TelaPesquisarFuncionario dialog = new TelaPesquisarFuncionario();
                dialog.addWindowListener(new java.awt.event.WindowAdapter() {
                    public void windowClosing(java.awt.event.WindowEvent e) {
                        System.exit(0);
                    }
                });
                dialog.setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTableFuncionarios;
    private javax.swing.JTextField jTextFieldFiltro;
    // End of variables declaration                   

}

Obs: já revizei a parte de acesso ao banco que esta funcionanto perfeitamente.

Agradeço a atenção e conto com a colaboração dos mais experientes para resolução deste problema.

Antes de mais nada, sugiro que você siga algumas dicas muito importantes:

  1. Não use DefaultTableModel. Crie seu próprio TableModel.
  2. Não use Vector. Use ArrayList.
  3. Procure separar as responsabilidades no seu projeto. Estude e aplique o padrão MVC.

Bom um palpite seria você verificar na hora da sua consulta se realmente está retornando funcionarios.

Se o código postado no fórum está identico ao do seu IDE nas numerações de linha, sugiro que verifique se o endereço do funcionário está sendo resgatado do banco de dados. Pois você está tentando acessar um objeto nulo.

Esse meu palpite vai de encontro com essa parte do código

Vector<Funcionarios> funcionarios = daoFuncionario.selecionar(parametro);  //verifique aqui se está retornando os usuários.
         for (int i = 0; i < funcionarios.size(); i++) {  
             Funcionarios f = funcionarios.elementAt(i);  
             Vector novaLinha = new Vector();  
             novaLinha.addElement("" + f.getCod_funcionario());  
             novaLinha.addElement("" + f.getNome());  
             novaLinha.addElement("" + f.getEndereco());  //verifique aqui
             novaLinha.addElement("" + f.getTelefone());  
             novaLinha.addElement("" + f.getCelular());  
             novaLinha.addElement("" + f.getCargo());  
             novaLinha.addElement("" + f.getAdmissao());  
             linhas.addElement(novaLinha);  
   
         }  

Assim como marcobiscaro2112 citou as dicas dele são importantíssimas para uma boa manutenabilidade da sua aplicação.

Espero que eu tenha ajudado
Abraço.

Galera, consegui resolver o problema, valeu pelas dicas, elas me ajudaram bastante.