Boa tarde.
Estou com o seguinte problema.
Em um determinado ponto do meu projeto, preciso saber se já existe algum objeto já instaciado de um determinado tipo, para seguir linhas diferentes.
Ex.
Se algum objeto que extenda a classe Movimentacao, estiver instanciado, eu não posso seguir em frente. Caso contrário, eu posso.
Agradeço qualquer ajuda pessoal…
Bjinhos…
Você precisa pôr um flag estático (inicializado com false) na classe Movimentação que indique se algum elemento já foi instanciado. No construtor dessa classe, sete esse flag para true.
Para checar se alguma instância dessa classe já foi criada, pegue o valor desse flag.
O problema dessa abordagem é que se todas as instâncias dessa classe já estiverem sido removidas pelo coletor de lixo, o tal flag irá ainda continuar como true.
Huummmm entendi…
o detalhe de essa classe Movimentacao ser uma JFrame, melhora em alguma coisa?
O uso desta flag pode gerar alguns imprevistos neh…
Ah, você quer saber se a janela Movimentação está aberta ou fechada, não? Então o jeito de você trabalhar é um pouco diferente. Você tem de associar um WindowListener.
Veja isto aqui:
http://java.sun.com/docs/books/tutorial/uiswing/events/windowlistener.html
é mais ou menos.
preciso saber se qualquer janela que extenda da Movimentação está aberta entendeu?
Mais claramente é assim…
Eu tenho uma janela principal que abre n janelas.
todas essas n janelas são filhas da janela Movimentação.
e quando qualquer uma dessas janelas estiverem abertas, eu não posso voltar para minha janela principal.
entendeu?
o que poderia me ajudar é que todas estas outras telas que são abertas, extendem Movimentação.
entendeu? ou compliquei mais…rsss
Entendi.
Essa história de ter uma janela que abre um monte de outras é sempre muito complicado de manipular.
Eu normalmente evito esse problema, usando alguma coisa com tabs (abas) - um JTabbedPane , ou uma janela só com um menu em forma de árvore (nesse caso usando CardLayout para mostrar apenas uma janela de uma vez, e um JTree para fazer as vezes de menu).
obrigada pela ajuda!!
vou tentar resolver aqui…
valeu…