Passando dados de um Jtable e passando para formulario

Olá Pessoal

Estou com um pequeno probleminha na hora de setar os dados no meu formulario.

É o seguinte, tenho meu banco de dados do postgres e nele eu estou listando meus dados no jtable que está em um internalframe, mas ai eu quero que ele exiba as informações do cliente que está em determinada linha no outro formulario para editar os dados dele que está em um internalframe diferente.

Nesse caso eu pego o id do cliente no jtable tudo certo ai passo para fazer a consulta ao banco, até então segue tudo ok. no outro internalframe que esta a tabela eu consigo passar o dado pra ele tbm só que quando tento enviar esse dado para o outro internalframe que é chamado pela tabela, ele nao funciona e da o seguinte erro:

Exception in thread “AWT-EventQueue-0” java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.Vector.elementData(Vector.java:730)
at java.util.Vector.elementAt(Vector.java:473)
at javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:649)
at Visao.Busca.pegarValor(Busca.java:104)
at Visao.Visualizar.PreencherTabela(Visualizar.java:38)
at Visao.Visualizar.atualizarActionPerformed(Visualizar.java:756)
at Visao.Visualizar.access$000(Visualizar.java:21)
at Visao.Visualizar$1.actionPerformed(Visualizar.java:714)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:682)
at java.awt.EventQueue$3.run(EventQueue.java:680)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:696)
at java.awt.EventQueue$4.run(EventQueue.java:694)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

abaixo segue o codigo para pegar os o codigo do cliente da jtable

[code]public long pegarValor() {
DefaultTableModel modelo = (DefaultTableModel) Listar.getModel();
// CandidatoDAO cd = new CandidatoDAO();

    int linha = Listar.getSelectedRow();
    String codigoCan = modelo.getValueAt(linha, 0).toString();
    long codigoCandidato = Integer.parseInt(codigoCan);
    return codigoCandidato;

}[/code]

abaixo tenho o DAO que pega o candidato do banco

[code]public List VisualizarCand(long codigoCan)
{
HibernateUtil hu = new HibernateUtil();
Session ss = hu.getConexao(new Candidato());
Transaction transacao = ss.beginTransaction();

    Query listagem_query = ss.createQuery("FROM Candidato WHERE id_candidato = :id");
    listagem_query.setParameter("id", codigoCan);
        List<Candidato> can = listagem_query.list();
        ss.getTransaction().commit();
        ss.close();
        return can;
}[/code]

Ambos a cima rodam perfeitamente só que nao consigo enviar para o jinternalframe do formulario que está sendo chamado pelo internalframe da tabela.

A minha pergunta é a seguinte, Como eu poderia fazer isso?

Desde já agradeço pela ajuda e atenção pessoal

Obrigado