Pessoal estou meio confuso nas “responsabilidades” entre as camadas Model e Controller da JTable, alguém poderia me ajudar com algum exemplo, explicando … qualquer coisa …
Tenho essa definição:
Model: é a classe responsável por representar os dados da tabela, sempre que iremos modificar os dados de uma JTable deve ser feito através do objeto model que é implementado pela interface TableModel ( AbstractTableModel e DefaultTableModel).
Controller: é a parte que controla os dados e a apresentação, ele é representado pela própria JTable.
Mas não sei bem a hora de user um obj do tipo table ou um do tipo tableModel.
O controller é o mecanismo de eventos do Swing e as funções que detectam as ações do usuário na tela. Você pode implementar um controller mais avançado e próprio, por exemplo, implementando um PropertyChangeListener.
Como em interfaces gráficas a UI fica “grudada” no model (não existe uma camada de comunicação no meio, como o HTTP), o controller acaba ficando tão fino e transparente que praticamente desaparece. Ele acaba se confundindo com o model.
Não é a toa que no Java o TableModel acaba fazendo algumas tarefas do controller, e no IOS os controllers acabam fazendo um pouco das vias de model. Dificilmente reforçar uma separação de maneira tao forte quanto se faz na web vale o esforço.