Key Listener

1 resposta
R

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. ??

1 Resposta

matheuslmota

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:

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);
	}
}
Criado 17 de novembro de 2012
Ultima resposta 17 de nov. de 2012
Respostas 1
Participantes 2