[Resolvido] - Como saber se um JinternalFrame está aberto ou fechado?

3 respostas
felipehts

Bom dia galera !

É o seguinte eu tenho um JDesktopPane dentro de um JFrame, no qual varios JinternalFrame são abertos, porém gostaria de limitar à abertura do JinternalFrame, ou seja quando o mesmo JinternalFrame já estiver aberto, não poderá ser aberto novamente ate ser fechado, tentei fazer isso usando ‘instanceof’ (exemplo abaixo), porém pensando em P.O.O não fica elegante, já que se eu tiver 10 JinternalFrame terei que comparar cada objeto, ficando assim muito “feio”, alguém poderia me passar uma sugestão para verificar se um determinando JinternalFrame já está aberto, penando em P.O.O ??? Agradeço a todos…vlw

JInternalFrame[] frames = jt.getAllFrames(); // jt = JDesktopPane

        for (int i = 0; i < frames.length; i++) {
            if (frames[i] instanceof Dados) { // Dados = um dos JinternalFrame existente no meu aplicativo
            } .............

3 Respostas

d34d_d3v1l

Oi meu amigo,

seguinte, você pode conhece Padrões de Projetos (Design Patters)… Existe um que chama-se “Singleton”… Ele existe para que o programador possa garantir apenas uma instância de um objeto. É muito simples. Vou jogar um exemplo qualquer aqui, e depois você pesquisa no g@@gle blz?

public class Cadastro{

      //A propria classe tem um atributo que é do seu próprio tipo.
     private static Cadastro singleton == null;


    //Usará este método para "pegar" o objeto desta classe...
     public static Cadastro getCadastro(){
           //Se ele for nulo, cria um novo
           if (singleton == null){
                singleton = new Cadastro();
           }
           //Se ele não for nulo, é pq ele ja existia :)
           //retorna ele
           return singleton;
 
     }

}
felipehts

d34d_d3v1l:
Oi meu amigo,

seguinte, você pode conhece Padrões de Projetos (Design Patters)… Existe um que chama-se “Singleton”… Ele existe para que o programador possa garantir apenas uma instância de um objeto. É muito simples. Vou jogar um exemplo qualquer aqui, e depois você pesquisa no g@@gle blz?

public class Cadastro{

      //A propria classe tem um atributo que é do seu próprio tipo.
     private static Cadastro singleton == null;


    //Usará este método para "pegar" o objeto desta classe...
     public static Cadastro getCadastro(){
           //Se ele for nulo, cria um novo
           if (singleton == null){
                singleton = new Cadastro();
           }
           //Se ele não for nulo, é pq ele ja existia :)
           //retorna ele
           return singleton;
 
     }

}

Valeu pela dica ! vou pesquisar mais um pouco aqui sobre o ‘Singleton’, parece bem interessante…vlw

kaberdock

eu estou tentandi fazer utilizando singleton, mas o problema é quando vc fecha o JInternalFrame e pede para abrir novamente o JInternalFrame e ele não abre, provavelmente porque já existe uma instância do mesmo só que oculta, gostaria de saber como posso esxcluir este singleton para criar um novo

Criado 23 de abril de 2011
Ultima resposta 13 de jul. de 2011
Respostas 3
Participantes 3