[RESOLVIDO]Ajuda para abrir as telas

5 respostas
Furyeyes

[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]

5 Respostas

agosti

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

Furyeyes

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!!

InicianteJavaHenriqu

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:

Furyeyes

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
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);
	    	
	    	
	    }	   
   }

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

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

InicianteJavaHenriqu

Dentro deste actionPerformed(ActionEvent e);

:thumbup:

Criado 4 de maio de 2012
Ultima resposta 5 de mai. de 2012
Respostas 5
Participantes 3