Key Listener

Boa tarde, Pessoal , eu tenho um frame, que chama outro frame, este segundo frame chama-se ‘tela’;
Eu queria fechar essa tela , assim voltando para o frame inicial. Porém queria fazer isso não só apertando no X da tela como apertando a tecla ESC.
Na tecla ESC e que mora meu problema.
O codigo do X funciona perfeitamente, porém a da tecla ESC nao funciona.

tela.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { tela.dispose(); open = false; menuPrincipal.cenario = -1; menuPrincipal.ativo = true; } }); tela.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){ if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { System.exit(0); } keyPressed(e); } public void keyReleased(KeyEvent e) { keyReleased(e); } });

Alguém pode me ajudar , com o keyListener para o ESC. ??

Bom, você pode adicionar os eventos no construtor do seu Frame tela, ou criar um método de iniciação e chamá-lo no construtor do Frame. O código a seguir funciona para o que você quer:

[code]import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;

public class Frame extends JFrame {

private static final long serialVersionUID = 4983727800375272097L;

public Frame() {
	inicializacoes();
}

private void inicializacoes() {
	addKeyListener(new KeyAdapter() {
		public void keyPressed(KeyEvent e) {
			if(e.getKeyCode() == KeyEvent.VK_ESCAPE)
				System.exit(0);
			keyPressed(e);
		}
		public void keyReleased(KeyEvent e) {
			keyReleased(e);
		}
	});
}

public static void main(String[] args) {
	Frame frame = new Frame();
	frame.setSize(800, 500);
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.setVisible(true);
}

}
[/code]