| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2010 22:12:57
|
valmirknasel
HelloWorld
![[Avatar]](/images/avatar/df5e57c1b772e3cdab2b9d868fe9743b.png)
Membro desde: 14/03/2008 20:14:57
Mensagens: 12
Offline
|
Olá pessoal...
Meu problema é o seguinte:
tenho um JFrame que recebe os dados para cadastrar um filme, cujo código é:
Este JFrame eu criei na mão mesmo...
o que eu quero saber é:
existe algum padrão de projeto para transporte de dados entre a camada de visualização?
pq eu tentei da seguinte forma:
criei um objeto estático Movie, dentro do próprio JFrame, que vai receber os dados do filme.
Mas o problema é que ao ser dado um "dispose()" no JFrame não tem como eu manter os dados do filme armazenado na memória para posterior uso em outro JFrame.
Não sei se sou burro demais ou o q... mas não consegui pensar numa saída para essa situação.
quem puder me dar alguma dica de como padronizar o transporte de dados para que todos os frames possam utilizá-los fico grato.
Obs.1: Os dados devem ficar armazenados em memória durante a execução do programa, estou descartando o uso de banco de dados pq tipo assim eu quero fazer com q o sistema gere telas com base em informações geradas dinamicamente.
Obs.2: Eu uso o padrão MVC. Então estou falando somente da camada View do sistema, nada de envolver a camada Model.
|
meu blog: http://valmirknasel.worpress.com
Every Solution is Reltaive. It Depends on who Applies. Use your Head, Use Java! |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2010 23:07:46
|
MarcioCasteloBranco
JavaGuru
![[Avatar]](/images/avatar/c2544f44973327effb265a6b63006cd4.jpg)
Membro desde: 14/08/2009 16:00:15
Mensagens: 220
Offline
|
Bom amigo tenta passar pelo construtor quando vc estiver trabalhando com objetos graficos (gui && awt) todo o meio de referencia ao objeto e feita pelo construtor.
Vlw
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/03/2010 01:19:26
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline
|
isso não ajuda?
http://www.guj.com.br/posts/list/55710.java#292687
Se não puder usar o JDialog, você pode usar o padrão observer, ou implementar um mecanismo de troca de mensagens. Mas fica bem mais complicado.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2010 03:47:40
|
valmirknasel
HelloWorld
![[Avatar]](/images/avatar/df5e57c1b772e3cdab2b9d868fe9743b.png)
Membro desde: 14/03/2008 20:14:57
Mensagens: 12
Offline
|
MarcioCasteloBranco wrote:Bom amigo tenta passar pelo construtor quando vc estiver trabalhando com objetos graficos (gui && awt) todo o meio de referencia ao objeto e feita pelo construtor.
Vlw
A idéia de passar o objeto pelo construtor já havia me ocorrido. Mas deixa eu especificar melhor meu problema:
Tenho um frame onde são visualizados alguns filmes cadastrados no sistema - DadosDoFilmeView, cujos estão carregados apenas em memória. Antes de salvar esses filmes, o usuário tem a possibilidade de adicionar mais alguns filmes à lista (DadosDoFilmeView). Para isso, abre-se outro frame (CadastrarNovoFilmeView), cujo receberá os dados de cadastro de um filme. Essa operação poderá se repetir enquanto o usuário quiser acrescentar mais filmes à lista. E ao inserir um novo filme, este deve constar imediatamente no frame DadosDoFilmeView. A exemplo, um frame com um jTable que é atualizado cada vez que for inserido um novo filme a lista atual de filmes. Eu queria fazer isso sem nenhuma "gambiarra", quer dizer, "adaptação técnica".
|
meu blog: http://valmirknasel.worpress.com
Every Solution is Reltaive. It Depends on who Applies. Use your Head, Use Java! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/03/2010 09:56:46
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline
|
Nesse caso só usando o observer mesmo. Seu frame CadastrarNovoFilmeView deve disparar um evento, e o DadosDoFilmeView deve escutar por esse evento.
O primeiro passo é criar uma interfaces:
Crie então um evento:
Crie no CadastrarNovoFilmeView, crie o suporte ao evento:
Após o cadastro de um novo filme, basta chamar o método fireFilmeAdded para avisar a todos os listeners que aquilo ocorreu.
Finalmente, faça a outra janela escutar esse evento, e se atualizar sempre que um evento chegar.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/03/2010 10:38:52
|
valmirknasel
HelloWorld
![[Avatar]](/images/avatar/df5e57c1b772e3cdab2b9d868fe9743b.png)
Membro desde: 14/03/2008 20:14:57
Mensagens: 12
Offline
|
ViniGodoy wrote:Nesse caso só usando o observer mesmo. Seu frame CadastrarNovoFilmeView deve disparar um evento, e o DadosDoFilmeView deve escutar por esse evento.
Desculpa a minha ignorância... mas pra q serve o HashSet??? Não entendi qual a função dele!!
Mas eu vou tentar implementar sua solução. Qualquer coisa eu posto outras dúvidas!!!
Obrigado pela atenção dedicada a mim!!!
O mundo é daquele que ajuda ao próximo e sempre haverá outro para retribuir ajudando-o de alguma forma!!!
This message was edited 1 time. Last update was at 15/03/2010 10:41:56
|
meu blog: http://valmirknasel.worpress.com
Every Solution is Reltaive. It Depends on who Applies. Use your Head, Use Java! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/03/2010 10:55:24
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20587
Localização: Curitiba/PR
Offline
|
Ele guarda os listeners. A vantagem de usa-lo é que ele não permite que o mesmo listener seja adicionado 2 vezes (e receba o evento duplicado). A desvantagem é que não há garantia de ordem, isto é, o primeiro a se registrar na lista não é necessáriamente o primeiro a receber o evento.
Geralmente, essa ordem não é importante mesmo. Se precisar garanti-la use um LinkedHashSet ao invés de um HashSet.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
|
|