Só pra constar… Tenta organizar as suas idéias melhor, o texto está meio confuso, mas eu consegui entender pois já passei por uma situação parecida.
Bom, a solução que eu indico nesses casos é a seguinte:
Primeiro, certifique-se que o seu modelo tenha um método que te retorne o objeto que seja a linha selecionada e um método para alteração dos dados na tabela, algo do tipo:
public SeuObjeto requisitarRegistro(int rowIndex)
{
return suaListaDeDados.get(rowIndex);
}
public void alterarRegistro(int rowIndex, SeuObjeto objeto)
{
SeuDAO.alterarRegistro(objeto);
suaListaDeDados.get(rowIndex).setCampo1(objeto.getCampo1());
suaListaDeDados.get(rowIndex).setCampo2(objeto.getCampo2());
// e por aí vai...
fireTableRowsUpdated(rowIndex, rowIndex);
}
Sua tela que é o formulário deve ser assim:
public class TelaFormulario extends JDialog
{
private Boolean confirmou = false;
private SeuObjeto dados = null;
public Boolean isConfirmou()
{
return confirmou;
}
public SeuObjeto requisitarDados()
{
return dados;
}
public TelaFormulario(SeuObjeto objeto)
{
dados = objeto;
JButton buttonConfirmar = new JButton("Confirmar");
buttonConfirmar.addActionListener(new ButtonConfirmar());
JButton buttonCancelar = new JButton("Cancelar");
buttonCancelar.addActionListener(new ButtonCancelar());
}
private class ButtonConfirmar implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
confirmou = true;
dados.setCampo1(/*valor pro campo 1*/);
dados.setCampo2(/*valor pro campo 1*/);
dados.setCampo3(/*valor pro campo 1*/);
// e por aí vai...
dispose();
}
}
private class ButtonCancelar implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
confirmou = false;
dispose();
}
}
}
Vamos entender o que foi feito… Dois campos foram criados: confirmou e dados. Eles são o controle do formulário. O método isConfirmou() serve para avisar à tela-pai se o usuário clicou ou não em Confirmar e que, por isso, deve-se ou não alterar os dados na tabela. Por isso, o atributo é do tipo Boolean.
O método requisitarDados() serve para, caso o usuário clique em Confirmar, todos os dados daquele formulário sejam devolvidos à tela-pai para alteração na tabela.
Por isso, na ação do botão Confirmar, seta-se a variável confirmou para true e preenche o objeto com os dados do formulário.
Suponhamos que esta seja a sua classe que tenha a JTable e tudo o mais:
public class TelaGerenciadora extends JDialog
{
//................
MeuAbstractTableModel model = new MeuAbstractTableModel();
JTable table = new JTable();
table.setModel(model);
JButton buttonAlterar = new JButton("Alterar");
buttonAlterar.addActionListener(new ButtonAlterar());
private class ButtonAlterar implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
TelaFormulario tela = new TelaFormulario(model.requisitarRegistro(table.getSelectedRow()));
tela.showDialog();
if (!tela.isConfirmou()) return;
model.alterarRegistro(table.getSelectedRow(), tela.requisitarDados());
}
}
}
Vamos entender como fica o funcionamento… Ao clicar no botão alterar, chama-se a TelaFormulario para que seja feita a alteração. Ela pede, como parâmetro no construtor, os objeto daquela linha. Por isso, disse para criar no modelo um método requisitarRegistro para que possa pegar o objeto da linha selecionada. Daí ele faz a telinha aparecer e beleza. O usuário faz as operações dele e clica ou em Confirmar ou em Cancelar. Se ele clicou em Cancelar, já sai do evento, através da palavra reservada return. Caso contrário, altera os dados no modelo através do método alterarRegistro!
E voilà, tá pronto a atualização automática da sua JTable! 
Qualquer dúvida, só perguntar aí!
Abraço!