Ao pressionar a Tecla ESC abrir um Novo JPanel

3 respostas
PSminKo

Ola, estou querendo fazer um Menu de Configurações para meu Jogo. E geralmente a tecla que abre o Menu e a tecla ESC eu ja sei como eu faço para abrir o JPanel novo so não como detectar se a tecla ESC foi pressionada.

3 Respostas

emerson_mendes1

Se estiver usando javax.swing pode pegar o código exemplo:

JPanel panel = new JPanel();
    
JFrame frame = new JFrame("Meu Frame");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.add(panel);
frame.setSize(300, 200);
frame.setVisible(true);


frame.addKeyListener(new KeyListener() {
    
	public void keyPressed(KeyEvent e) {
    	if(KeyEvent.VK_ESCAPE == e.getKeyCode())
    		System.out.println("Faça oque quiser aqui");
    }

    public void keyReleased(KeyEvent e) {}

    public void keyTyped(KeyEvent e) {}
    
});
ViniGodoy

Se estiver usando Swing, o ideal é usar a classe KeyStroke para isso:

JRootPane rootPane = new JRootPane();
KeyStroke stroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
rootPane.registerKeyboardAction(actionListener, stroke, JComponent.WHEN_IN_FOCUSED_WINDOW);

Onde actionListener contém o actionListener que será disparado quando o esc for pressionado (o que abriria o painel). Esse método é geralmente mais confiável do que o KeyListener pois irá ser aplicado mesmo que outros componentes capturem o foco ou consumam o evento.

PS: Tive que corrigir o português do seu tópico. “Faço” não se escreve com “ss” e pressionado não se escreve com “c”. Por favor, procure usar o português correto no fórum.

PSminKo

Manu obrigado ajudou muito.

Criado 10 de fevereiro de 2016
Ultima resposta 10 de fev. de 2016
Respostas 3
Participantes 3