Usar design patterns é legal, mas neste caso o que eu recomendaria mesmo é o "design
patter if" :-) ou um setEnabled(false) no botão pois usando um singleton estariamos
dando acesso a janela para qualquer outra classe e provavelmente isto não é o
desejado.

A solução "if" já foi exemplificada pelo Jason em email anteriror. Para solucionar
este problema usando o setEnabled() faça o sequinte:

no ActionListener do botão:

public void actionPerformed(ActionEvent e) {
    if (e.getSource() instanceof JButton) {
        final JButton b = e.getSource();
        b.setEnabled(false);
        JFrame frame = //cria sua janela
        frame.addWindowListener(
            new WindowAdapter() {
                    public void windowClosed(WindowEvent e) {
                        b.setEnabled(true);
                    }
            }
        );
        frame.show();
}

Inteh,
Leonardo.
....................................................
Leonardo Souza Mario Bueno
itera Informática
Voice, Wireless & Web Solutions
[EMAIL PROTECTED]
Phone: 55 27 337 0317
Cell: 55 27 9971 1375
Visit our NEW website at:
http://www.itera.com.br
....................................................

----- Original Message -----
From: "Jorge Martins" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, April 03, 2001 12:33 PM
Subject: RE: [java-list] Ajuda !!


Alexandre,

Uma solução bem bacana seria aplicar o Design Pattern Singleton nesta janela
destino. Ele funciona assim:

- criar uma instância static da própria classe

- colocar o contrutor com nível de proteção private

- gerar um método getInstance() para retornar a instância única

class Singleton
{
static private Singleton instance;

private Singleton()
{
// aqui você poderia apresentar a janela.
}

static synchronized Singleton getInstance()
{
if (instance == null)
{
instance = new Singleton();
}
return instance;
}
}


sacou?

Você pode ainda colocar o procedimento de apresentar a janela no construtor
ou separá-lo em um método a parte (Exemplo: show())

Para utilizar o objeto único desta classe basta utilizar algo do tipo:

Singleton.getInstance().show();


abraços

Jorge

-----Original Message-----
From: Alexandre de Almeida Nahas [mailto:[EMAIL PROTECTED]]
Sent: terça-feira, 3 de abril de 2001 11:01
To: [EMAIL PROTECTED]
Subject: [java-list] Ajuda !!


Olá , estou com o seguinte problema:
tenho uma aplicação JAVA e nela existe um botão que possibilita a abertura
de uma outra janela , mas quando dou vários click´s nesse botão ele me abre
várias janelas, como posso corrigir isso, para ele abrir apenas uma janela .

OBS : Devo habilitar o botão logo após a saída dessa janela.

Obrigado


------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------



------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a