Ajuda com MVC - Swing

Olá galera andei estudando MVC com Swing, principalmente em links recomendados em tópicos aqui no fórum.
Estou desenvolvendo um sistema e me bateu uma dúvida cruel sobre o modo como escolhi desenvolver.
Estou fazendo assim: as classes da visão (telas) possuem ActionListeners nos seus componentes, e os métodos desses ActionListeners chamam métodos respectivos em classes de controle. A questão é que toda a lógica da apresentação, incluindo instanciação de novas telas, estão dentro das classes de controle. Isso está correto? Ou teria uma forma melhor de tratar essa lógica? Eu pensei em deixar coisas como chamada de outras telas e ativação / desativação de botões na camada de visão, mas não sei se faria bem.
Eu quero dicas do pessoal, como vocês tratam isso em Swing?

eu colocaria o que é relacionado com tela, tudo junto, tudo o que é relacionado a controle, junto com o controle, vc pode retornar valores do controle para as telas, e nas classes de tela, fazer o controle dos botões ou chamar outras telas

OK, valeu amigo! Mas por exemplo, num cadastro, eu iria passar os dados da tela pro controle, e nesse caso eu faria como? Deixaria que o controle obtesse os dados do componente da tela? Ou senão, eu passaria os dados da visão pro controle, já num javabean? Pq ao meu ver isso seria instanciar o modelo nas classes da visão, ou não?

Eu sigo o modelo da própria Sun, que denigre a camada de controle.
Você acaba só com a model e a view.

Até porque, você não precisa de uma camada de controle complexa, já que:

  1. Usuários não tem como se redirecionar para uma tela sem ser por sua aplicação;
  2. Validações feitas na view são 100% confiáveis;
  3. Você dificilmente vai precisar de mais views para um mesmo model.

Opa, valeu Vini! Mas, sem a controle? Então eu faria toda a lógica nas telas? Tipo, desde controle da tela até população de beans e chamada aos métodos dos DAOs? Você tem a especificação desse modelo da Sun, pra eu consultar?

vc poderia criar um VO, colocar os dados da tela nele, e depois passar para as classes de controle

http://java.sun.com/products/jfc/tsc/articles/architecture/
http://www.javaswing.org/introduction-to-java-swing.aspx

Sim. Pare e pense do porque se separa numa camada de controle. Você vai ver que a principal motivação é por que, na web, o cliente e o servidor estão separados fisicamente. Não é o que acontece em sistemas desktop.

Agora, não quer dizer que você esteja 100% destituído de objetos de controle. Alguns objetos do Swing chamados de “model” (TableModel, Document, ComboBoxModel) não deixam de ser objetos de controle simplificados e, seu código só ficará confuso mesmo, se você usar suas versões “default”.

Valeuzao!! To lendo agora o segundo link q voce me passou, o da Sun. Pude entender que o swing ‘encapsula’ a view e a controller em uma UI Delegate, tipo uma camada única.
Para implementar isso nas classes de visão, como você faz? Você implementa ActionListener ou cria inner classes anônimas?

ah, e só pra finalizar: Meu próximo passo é estudar ObjectTableModel pra usar nas tabelas, vocês poderiam me indicar por onde começar? Talvez por este post? http://www.guj.com.br/posts/list/15/199067.java#1001295 Obrigado por tudo JonaTHANNM e Vini!