Problemas ao fechar o frame.[RESOLVIDO]

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.

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

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

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) :?:

Beleza, vou testar e já posto o resultado.

Certo, ficou perfeito.
Veja o código:

[code]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
  );

}
}[/code]