Integrando telas

bom gostaria de uma ajuda

bom…eu tenho um painel Embalagem. ae tenho o botao procurar, que chama uma tela (estilo popup) que pesquisa no banco, preenche a tabela, pega o codigo da embalagem escolhida e clica em ok. Até ae tudo ok…
agora é o seguinte. atualizar o painel com o nome e os outros dados.





Primeiro eu sugiro você usar um JDialog em vez de JFrame na janela de pesquisa. Porque assim obriga o usuario a clicar em algum JButton antes de voltar a JFrame Anterior.
Eu costumo fazer o seguinte: na Janela de Busca em tenho um metodo getIndice() que armazena a id seleciona.
Ja na Janela que chama a busca, após o retorno, eu chamo o getIndice() e seto os dados para o referido indice.

Complementanto… dá um getIndice()… depois pesquisa o produto do banco…pelo índice…e complementa a tela…

Uma boa opção seria utilizar o pattern Observer, ou utilizar um Listener.
Utilizando o Observer, você registra a classe embalagem para receber os dados “observados”, e a tela de pessquisa, ao selecionar um produto, envia para o “observador” o objeto, ou os dados que foram selecionados.

Outra opção seria o listener. Crie um Listener, a tua classe embalagem implementa esse listener e adicione esse listener na tua classe de pesquisa. No método implementado, na classe embalagem, implemente o preenchimento dos dados na tua tela. Na tela de pesquisa, ao ser selecionado um objeto, chame o método do listener adicionado.

Fernando Rosa

O listener é um exemplo do Pattern Observer… então no fundo suas duas dicas foram uma só…

Eu já implementei tela usando os dois, listeners e JDialogs e, sem sombra de dúvidas, JDialog é melhor nesse caso.

geralmente eu uso variaveis static, e dp acesso elas instaciando a classe, isso é correto?

Via de regra, tenha 50 tipos de calafrios diferentes ao declarar static.

Então, não, não é nem de longe a melhor maneira de se fazer.

As variáveis static tem vários problemas sérios:

  1. Seu conteúdo nunca será coletado pelo garbage collector. Portanto, você é obrigado a lembrar de sempre atribuir null ao valor estático depois de usa-lo;
  2. Elas dificultam muito a criação de classes thread-safe. Aliás, o pior tipo de classe em relação a threads, chamado thread-hostile, é obtido através de static;
  3. Elas facilmente promovem o escopo global, o que pode gerar um código confuso e difícil de manter.

Os problemas 2 e 3 não são válidos para constantes ou tipos imutáveis.

Obrigado pela dica ae :smiley:

agora vo da uma pesquisada sobre jDialog.
se alguem tiver algum link bom ou um material :smiley: agradeço.

de qualquer forma. VALEU AE :smiley:

http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JDialog.html
http://java.sun.com/docs/books/tutorial/uiswing/components/dialog.html
:wink: