Não consigo selecionar o campo da tabela

Galera me ajudem por favor.
Estou tentando selecionar um campo da tabela e aparecer os dados no jTextField1,
e o SelectedRow() traz -1
Segue em baixo o método

private void jBSelecionarActionPerformed(java.awt.event.ActionEvent evt) {                                             


      String nome = (String) jTable.getValueAt(jTable.getSelectedRow(), 0);
        String id = (String) jTable.getValueAt(jTable.getSelectedRow(), 1);
        String Cpf = (String) jTable.getValueAt(jTable.getSelectedRow(), 2);
        String Email = (String) jTable.getValueAt(jTable.getSelectedRow(), 3);

        jTFuncionario.setText(nome);
        jTCodigo.setText(id);
        jFCpf.setText(Cpf);
        jTEmail.setText(Email);

Erro
Exception in thread “AWT-EventQueue-0” java.lang.IndexOutOfBoundsException: Invalid index
at javax.swing.DefaultRowSorter.convertRowIndexToModel(DefaultRowSorter.java:497)
at javax.swing.JTable.convertRowIndexToModel(JTable.java:2611)
at javax.swing.JTable.getValueAt(JTable.java:2686)
at PesqFuncionario.jBSelecionarActionPerformed(PesqFuncionario.java:529)
at PesqFuncionario.access$900(PesqFuncionario.java:31)
at PesqFuncionario$10.actionPerformed(PesqFuncionario.java:310)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6289)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6054)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:617)
at java.awt.EventQueue$2.run(EventQueue.java:615)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Amigo quantas colunas sua tabela tem ?

tem 4 colunas, e no caso se eu definir conforme abaixo sem o getSelectedRow, da certo, mas eu só vou poder clicar na primeira linha.

String nome = (String) jTable.getValueAt(0, 0); 

juan_net.
Tenta fazer assim:

 String nome = jTable.getValueAt(jTable.getSelectedRow(), 0).toString();

Pra ver se muda alguma coisa.
Só uma pergunta, você esta usando defaultTableModel ou está usando seu próprio tableModel?

eu criei minha própria TableModel

E eu coloquei do jeito que você postou e deu o erro
Exception in thread “AWT-EventQueue-0” java.lang.IndexOutOfBoundsException: Invalid index

Posta o método getValueAt do seu tableModel.

  @Override
    public void setValueAt(Object valor, int linha, int coluna) {
        data[linha][coluna] = valor.toString();
        fireTableCellUpdated(linha, coluna);
    }

    @Override
    public Object getValueAt(int linha, int coluna) {
        return data[linha][coluna];
    }
}

Seguinte, você não vai conseguir enviar os parametros separados, porque o seu método não está definido assim.
Veja como eu faço normalmente nos meus tableModel:

    public Object getValueAt(int linha, int coluna) {
        if(coluna==0){
            return clientes.get(linha).getItemProduto();
        }else
            if(coluna==1){
                return clientes.get(linha).getQuantidade();
            }else
                if(coluna==2){
                    return clientes.get(linha).getValorUnitario();
                }else
                    if(coluna==3){
                        return clientes.get(linha).getValorTotal();
                    }
                return "";
    }

Se você tiver em dúvida sobre o restante do seu tableModel, dá uma olhada neste link:
http://www.guj.com.br/java/149034-duvidas-ao-fazer-uma-consulta#808003

Vlw vou da uma olhada aqui…
Obrigado pela ajuda