Problema com uso de Singleton

1 resposta
felipehts

Boa tarde galera !

Estou usando 'Singleton' para identificar se o JinternalFrame já está aberto, meu código (abaixo) está funcionando corretamente, porém ao minimizar JinternalFrame no JDesktopPane, e tentar abrir um novo ele aceita. Alguém sabe como posso fazer para barrar isso ??? vlw pela ajuda....
OBS: Preciso da função minimizar ativa...

private static Dados singleton = null;
    /** Creates new form Dados */
    private static final Dados INSTANCIA;

    //BLOCO DE CODIGO STATIC , SOH EH EXECUTADO UMA VEZ
    static {
        INSTANCIA = new Dados();
    }
    public Dados() {
        initComponents();
    }

    public static Dados getInstance() {
        return INSTANCIA;
    }
private void bt_dadosActionPerformed(java.awt.event.ActionEvent evt) {                                         
        Dados f = Dados.getInstance();
        if (f.getParent() != jt || f.isIconifiable() == false) {

            jt.add(f); // jt = JDesktopPane
            f.setVisible(true);

} 

]

1 Resposta

felipehts
felipehts:
Boa tarde galera !

Estou usando 'Singleton' para identificar se o JinternalFrame já está aberto, meu código (abaixo) está funcionando corretamente, porém ao minimizar JinternalFrame no JDesktopPane, e tentar abrir um novo ele aceita. Alguém sabe como posso fazer para barrar isso ??? vlw pela ajuda....
OBS: Preciso da função minimizar ativa...

private static Dados singleton = null;
    /** Creates new form Dados */
    private static final Dados INSTANCIA;

    //BLOCO DE CODIGO STATIC , SOH EH EXECUTADO UMA VEZ
    static {
        INSTANCIA = new Dados();
    }
    public Dados() {
        initComponents();
    }

    public static Dados getInstance() {
        return INSTANCIA;
    }
private void bt_dadosActionPerformed(java.awt.event.ActionEvent evt) {                                         
        Dados f = Dados.getInstance();
        if (f.getParent() != jt || f.isIconifiable() == false) {

            jt.add(f); // jt = JDesktopPane
            f.setVisible(true);

} 

]

Bom galera, pensei mais um pouquinho e consegui resolver, apenas mudando o if (veja abaixo como fiou).

private void bt_dadosActionPerformed(java.awt.event.ActionEvent evt) {                                         
        Dados f = Dados.getInstance();
        if (f.getParent() != jt && !f.isIcon()) {

            jt.add(f);
            f.setVisible(true);

        }
    }
Criado 23 de abril de 2011
Ultima resposta 23 de abr. de 2011
Respostas 1
Participantes 1