Atualização de tela

4 respostas
Zeed01

Boa tarde Colegas !

Estou com o seguinte problema:

Tenho uma tela de cadastro de usuarios, onde um dos atributos é o perfil, as opções de perfil aparecem em JComboBox que eu carrego a partir da tabela Perfil no momento em que carrego a tela de usuário.
Tenho uma outra tela onde posso incluir, alterar ou excluir perfis.

Minha dúvida é a seguinte:
Estando com a tela de cadastro de usuário aberta, se eu abrir a tela de cadastro de perfis e incluir, excluir ou alterar um perfil, teria como essa alteração já aparecer no JComboBox da tela de usuario.

Obrigado.

Abraço a todos.

4 Respostas

P

Zeed01, tem como fazer sim.

Eu mesmo ja implementei isso.

Na verdade eu uso do seguinte artifício:

Meu programa tem um ArrayList onde coloco as telas que estão abertas.

1 - No seu caso, quando vc abrisse uma tela de cadastrar usuário, ela seria um elemento do arrayList de JFrames (ou JInternalFrames, como costumo usar).

2 - Quando vc abrir a tela de cadastro de perfil, ela também será um ítem do ArrayList

3 - quando vc clicar no botão que insere o novo perfil, vc varre o seu arrayList e ve se alguma das telas que estão abertas é uma tela de cadastro de usuário (vc pode usar instance of para isso)

4 - se uma delas for cadastro de usuários, a sua tela de usuários deve ter um método que repopule o combobox, e a sua tela de cadastro de perfil deve chamar esse método para a tela que está aberta no ArrayList

Espero ter sido claro.

Qualquer dúvida poste que tento te ajudar, mas eu ja fiz e vai com calma que da pra ser feito sem grandes traumas.

Abraço e boa sorte

Zeed01

paulohrl:

Ainda não tive tempo de implementar, mas a idéia me pareceu ótima, parabéns e obrigado !

Mas estou com algumas dúvidas… o ArrayList teria que pode ser acessado por qualquer tela… como você resolveu isso ?
Outra coisa, como você fez para a tela de Perfil saber que ela tem que atualizar a tela de cadastro ? Vamos imaginar que eu usasse o perfil também mais uma tela além da tela de Usuário, então eu teria que atualizar as duas… você colocou isso diretamente no código em um método da tela de Perfil ?

Obrigado novamente.

[]s

arochafademac

Recentemente implementei algo parecido tb. E com um principio parecido com o dele, faça que na classe que chama i InternalFrame você possa receber como parametro a primeira classe, algo assim

public novoFrame extends JinternalFrame{ private JPanel parentPanel = null; public novoFrame(JPanel parentPanel) { this.parentPanel = parentPanel; }

E no JPanel principal você adiciona um metodo para atualizar o seu JComboBox,
Assim você vai poder chamar o metodo de atualização do primeiro painel toda vez que for adicionado um valor…entendeu?

Zeed01

Acho que entendi sim…

Mas no meu caso a tela de Perfil não é chamada a partir da tela de cadastro de Usuário e sim a partir de uma opção do menu.

A alternativa que estou pensando em usar é criar uma classe que possui a lista de telas abertas atualizada e na tela de perfil verificar se existe tela de usuario aberta e chamar o método que atualiza o compo.

Acho que essa deve ser o que paulohrl esta fazendo…

Só tenho que garantir que essa classe com a lista seja unica na aplicação, acho que chamam isso de Singleton…

[]s

Criado 28 de junho de 2007
Ultima resposta 29 de jun. de 2007
Respostas 4
Participantes 3