Várias instancias do formulário abertas

Pessoal eu estou com com um problema, que é o mesmo formulário aberto várias vezes. Por exemplo eu instancio o formulário e coloco esse código em evento do botão.Mas se o usuário clicar 2000 vezes, serão abertos 2000 formulários. Então eu queria saber se alguem sabe uma forma de somente abrir um form, e quando ele clicar de novo nesse botão, somente trazer pra cima o formulário.

Deve ser um código simples, mas é um problema que no meu ponto de vista é muito chato.

Abraços e Agradeço a todos.

Você poderia utilizar o padrão de projeto Singleton, que quando o usuário clicar no botão, o formulário que está na memória será chamado novamente.

Veja melhor em:
http://www.patternizando.com.br/?p=51

Ou usar uma JInternalFrame.

Achei até um pouco interessante, mas não daria pra implementar isso no meu projeto agora. Se alguem tivesse outra solução! :smiley:

olá amigo,

Vou dar uma dica para implementar o sigleton no seu projeto para esse seu problema

		JButton botao=new JButton("Botão"); // Depois vc adiciona o botão ao painel

		botao.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {

				if(jinternalFrame==null){ //verifica se seu frame já foi instanciado

					jinternalFrame = new SeuFrame(); //se nao foi ainda instancia e exibe o frame
					
				}else{

					jinternalFrame.setVisible(true); // se nao chama o metodo para exibir
				}
				
			}
		
		}

Espero ter ajudado
Fallow

Agradeço a ajuda de todos, mas resolvi dessa forma:

 frmEmpresaPesquisa frm;


    private void Pesquisar(java.awt.event.MouseEvent evt) {
         if (frm == null) {
                      frm = new frmEmpresaPesquisa();
                      frm.setVisible(true);
        }
         else
         {
             frm.setVisible(true);
         }
    }

Obrigado a todos!

Abraço!

O evento mouse evente soh vai ser acionado se clicado com o mouse…

mude para ActionEvent para trabalhar com o evento no componente e nao na origem do evento…

tente dar um enter no seu botão…

Não vai funcionar…

Fallow

Mas é um JMenu ai funciona di boa