Problemas ao fechar o frame.[RESOLVIDO]

4 respostas
DANIEL35

Olá amigos. Gostaria de saber como faço, para quando fechar o frame através do ‘X’ lá na barra de títulos, já automaticamente se abra uma tela de login que criei. Esta janela que quero fechar ao clicar no ‘X’ será uma apresentação do trabalho sendo que logo em seguida virá a tela de login para usar o sistema. Alguém poderia ajudar?
Obrigado.

4 Respostas

R

Se for um JFrame, você pode colocar o código de interesse no método windowClosed() de uma interface WindowListener:

frame.addWindowListener(new WindowListener() { ... } );
f4binho

Isso aew vc pode usar o método windowDesactivated de uma interface WindowListner

this.addWindowListener(new java.awt.event.WindowAdapter() {
			public void windowDeactivated(java.awt.event.WindowEvent e) {
				// Digite aqui a descrição do seu método.
			}
		});

Aí a mágica acontece, quando vc desativa o se caso for o JDialog

Se for o JFrame, utilize o windowClosing :

this.addWindowListener(new WindowAdapter() {
       public void windowClosing(WindowEvent e) {
              // Digite aqui a descrição do seu método.
        }
  });

Espero ter ajudado

:lol: :smiley: :idea: :!: :!: :x :slight_smile: :lol: :-o :frowning: 8) :?:

DANIEL35

Beleza, vou testar e já posto o resultado.

DANIEL35
Certo, ficou perfeito. Veja o código:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

class TelaIntroducao extends JFrame {
    FontMetrics fm;
    String s = "Apresentação ";
    
   public TelaIntroducao() {   	
    setTitle("Testes");
    getContentPane().setLayout(new FlowLayout());  

    this.addWindowListener(new WindowAdapter() {  
      public void windowClosing(WindowEvent e) {  
            new TelaLogar();
       }  
});   
    
    Font font = new Font("Jokerman", Font.ITALIC, 36);
    setFont(font);
    fm = getFontMetrics(font);
    setSize(fm.stringWidth(s)+30, fm.getHeight()+60);

    setVisible(true);
	setSize(550, 550);
	setResizable(false);
    setLocationRelativeTo(null);	

   }
   public void paint(Graphics g) {
      Insets ins = getInsets();
      int w = getSize().width-ins.left-ins.right;
      int h = getSize().height-ins.top-ins.bottom;

      int centerX = w/2 + ins.left;
      int centerY = h/2 + ins.top;

      g.setColor(Color.red);
      g.fillRect(ins.left, ins.top, w, h);

      g.setColor(Color.yellow);
      g.drawString(
         s, 
         centerX-fm.stringWidth(s)/2, 
         centerY + (fm.getAscent()-fm.getDescent())/2
      );
   }
}
Criado 9 de junho de 2010
Ultima resposta 9 de jun. de 2010
Respostas 4
Participantes 3