Problemas ao tentar pasar os Dados de um JTable para textfields de um InternalFrame

Galera Boa Noite ,Tenho uma janela com um JTable e um botão alterar,quando o úsuario clica no botão editar,pega o objeto da linha selecionada na tabela e abre um outro internalframe com os textfields preenchidos pelos dados da linha selecionada da tabela.

Esse é o código que pego a linha selecionada e passo para abrir o outro InternalFrame:

[code]btnEditar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
JanelaAlterarContrato janela = new JanelaAlterarContrato();
if(tabelaContrato.getSelectedRow() >=0) {

                        int viewRow = tabelaContrato.getSelectedRow();
                        Contrato selected = (Contrato) tabelaContrato.getValueAt(viewRow,0);
                        janela.atualizarContrato(selected);
				        principal.getDesktop().add(janela);
				        janela.setVisible(true);
			}
		  }[/code]

Esse é o método atualizarContrato que pega os campos referentes ao contrato selecionado:

protected void atualizarContrato(Contrato rec) { campoRegistro.setText(String.valueOf(rec.getCodContrato())); campoTipoContrato.setSelectedItem(rec.getTipoContrato()); campoCliente.setSelectedItem(rec.getJuridica()); campoDataInicial.setText(formataData.format(rec.getDataInicio())); campoDataFinal.setText(formataData.format(rec.getDataFinal())); cod = rec.getCodContrato(); }

Ao selecionar a linha e clicar no botão editar da o seguinte erro: java.lang.ClassCastException: java.lang.Long cannot be cast to projeto.basica.Contrato
O que será,sou iniciante e ainda não entendo quase nada,tenho que entregar esse projeto essa semana e já tou desesperado,que apenas está listando e cadastrando,falta editar e excluir, e a cada tentativa só da erro.
Se poderem me ajudar,Desde já agradeço,abraços

Na linha 8 do 1º código parece que o getValueAt(viewRow,indiceDaColuna) pega apenas o valor da coluna 0, sendo que selected Contrato é um objeto com múltiplos atributos, seria correto ao menos que essa célula armazenasse esse objeto. Me parece q uma possível solução pra isso seria pegar os dados das outras colunas dessa linha(row).