KeyListener não funciona depois que o ActionListener é usado, por que?[Resolvido]

Criei uma tela estendendo de JFrame, limpa. Criei uma classe estendendo de JPanel onde coloquei uma imagem de background e um botão “sair”, apenas isso. Na classe principal eu inicio a classe tela, a painel e uma classe controller. Envio a tela e o painel como parâmetros para controller. No construtor do controler é adicionado o painel na tela. Até aí beleza. A classe controller implementa ActionListener e contem uma classe interna que implementa KeyListener.
O evento do teclado (botão ESC) funciona perfeitamente, mas a partir do clique no botão sair, que também funciona, o KeyListener não funciona mais. Eu coloquei outro botão sem tratamento de evento e ocorre o mesmo se clicar nele, o KeyListener não funciona mais. E não ocorre nenhum erro, pelo menos o Eclipse não avisa nada.

Onde estou errando? Agradeço desde já. :slight_smile:

package br.com.alexandre.controller;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import br.com.alexandre.model.PainelTela;
import br.com.alexandre.view.Mensagem;
import br.com.alexandre.view.Tela;

public class Controller implements ActionListener{
	private Tela tela;
	private PainelTela painelTela;
	
	public Controller(Tela tela, PainelTela painelTela) {
		this.tela = tela;
		this.painelTela = painelTela;
		
		this.tela.add(painelTela);
		this.tela.repaint();
	}	
	
	public void control() {
		painelTela.getSairButton().addActionListener(this);
		tela.addKeyListener(new KeyHandler());
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==painelTela.getSairButton()){
			if(Mensagem.confirmaSair())
				System.exit(0);
		}
	}
	
	public class KeyHandler extends KeyAdapter {

		@Override
		public void keyPressed(KeyEvent e) {
			if(e.getKeyCode()==KeyEvent.VK_ESCAPE){
				if(Mensagem.confirmaSair())
					System.exit(0);
			}
		}
		
	}
}

Alguém?

Resolvi