Evento que capture uma tecla qualquer em um JInternalFrame

5 respostas
javaJoni

Olá gurizada, por acaso alguém pode me ajudar?
Eu gosaria de saber como pegar o evento de uma tecla qualquer em um JInternalFrame.
Por ex: teclando F8 vai salvar, ESC fechar, etc… mas isto sem o acionamento de botões da janela e em qualquer momento que o usuário quiser.

Obrigado. :thumbup:

5 Respostas

javer
Coloca um KeyListener no seu form:
addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                formKeyPressed(evt);
            }
        });

    private void formKeyPressed(java.awt.event.KeyEvent evt) {
        if(evt.getKeyCode() == java.awt.event.KeyEvent.VK_F8){
            System.out.println("Salvar...");
        } else if (evt.getKeyCode() == java.awt.event.KeyEvent.VK_ESCAPE){
            System.out.println("Vai fechar...");
        }
    }
javaJoni

Olá javer.
Testei o código em um Frame qualquer meu e não deu certo.
Coloquei o KeyListener no construtor e o keyPressed fora.
Tem alguma idéia?

javer

Dá uma olhada nesse exemplo e vê se te ajuda.

javer

Uma outra abordagem você pode ver aqui também usando ActionMap e InputMap para mapear as teclas pressionadas.

javer

Ou ainda, esse tópico aqui mesmo no forum do GUJ

Criado 20 de janeiro de 2009
Ultima resposta 20 de jan. de 2009
Respostas 5
Participantes 2