keyListener com jinternalframe

1 resposta
S

não estou conseguindo fechar um jinternalframe com a tecla Esc ;

Implementei o seguinte código no construtor do internalframe , mas não funciona, gostaria de uma
ajuda se possível .

public class Sair extends javax.swing.JInternalFrame {

public Sair() {
    initComponents();
    

    setTitle ("Sair");
    setResizable(false);
    setVisible(true);
    
    
    this.addKeyListener(new KeyAdapter (){ 
      public void KeyPressed (KeyEvent evt){ 
             int esc = evt.getKeyCode();
             if (esc == KeyEvent.VK_ESCAPE) {
                  dispose();
                  
             }
      }
});

}

1 Resposta

ViniGodoy

Para isso, você terá que usar um ActionMap e um KeyMap.

Eu sinceramente não recomendo.

Se o seu frame ficar lento por qualquer motivo, o usuário apertará ESC para tentar cancelar a ação, ficará esperando e, quando a ação terminar, fechará o frame. Nada agradável, não?

Não tem muito porque alterar o comportamento padrão das classes do Java. Você só vai gerar código propenso a erros e trabalhoso para se manter.

Criado 25 de outubro de 2007
Ultima resposta 25 de out. de 2007
Respostas 1
Participantes 2