[RESOLVIDO]Ajuda para abrir as telas

[b] Pessoal, tenho uma dúvida, no meu programa estou fazendo 2 telas.
Uma principal acessa a outra, mas tem um porém, quando abro a secundária e minimizo e aperto o botão novamente na principa ele abre uma nova tela secundária, eu gostaria que ele me trouxesse a mesma tela secundária aberta, para não abrir um monte ao clicar o botão, se alguém poder me judar como fazer isso agradeço!!!

Valew[/b]

Olá Diego,

Você pode resolver esse problema usando o padrão singleton, ou seja, instanciar um objeto (no seu caso a tela) somente se ele for nulo.

Exemplo:


  if (minhaTela == null) {
     minhaTela = new MinhaTela();
 }
 minhaTela.show();

att

Poxa brother valew…
Não vou poder testar agora porque estou em serviço, mas se eu testar e der algum erro, posto novamente aqui!!!

FLW!!

O exemplo do agosti funciona perfeitamente, só uma pequena alteração:


  if (minhaTela == null) {
     minhaTela = new MinhaTela();
 }
 minhaTela.setVisible(true);

pois o método .show() está obsoleto.

:thumbup:

Galera, esta acontecendo o seguinte, minha segunda tela esta ligada ao botão cadastrar, e para cada botão eu implementei um Action para criar cada tela, mas não estou sabendo onde colocar oque você disseram

Aqui vai o ActionListener do botão cadastrar que abre a telaCliente

[code]class TelaCliente implements ActionListener{ //Tela Cadastrar cliente
public void actionPerformed(ActionEvent e){

    	JFrame telaCliente = null;
    	if(telaCliente == null){
    	telaCliente = new JFrame("Cadastro");	
    	JButton cadastra = new JButton("Cadastrar");
    	JButton limpa = new JButton("Limpar");
    	JButton Home = new JButton("Home");
    	JLabel cNome = new JLabel("Nome");
    	cNome.setFont(new Font("Script",Font.BOLD,16));
    	JLabel cSNome = new JLabel("Sobrenome");
    	//cSNome.setFont(Font.BOLD,16);
    	JLabel cpf = new JLabel("Cpf");
    	JLabel rg = new JLabel("Rg");
    	JLabel cTelefone = new JLabel("Telefone");
    	
    	telaCliente.setSize(600,600);
    	telaCliente.setResizable(false);
    	telaCliente.setLayout(null);
    	
    	cNome.setBounds(50, 500, 90, 30);
    	cadastra.setBounds(300, 285, 90, 30);//x, y, largura, altura
    	telaCliente.add(cadastra);
    	telaCliente.add(cNome);
    	
    	telaCliente.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
    	}//Fecha if
    	telaCliente.setVisible(true);
    	
    	
    }	   

} [/code]

Não sei onde colocar esse if pra ficar certinho.

Obs: Não estou usando layout pois é determinação da Prof°.

Dentro deste actionPerformed(ActionEvent e);

:thumbup: