Tecla ENTER deixa de aparecer no KeyEvent após mudança com KeyboardFocusManager

0 respostas
V

Pessoal,

No construtor do JFrame principal da aplicação coloquei o seguinte código para considerar o ENTER igual ao TAB na mudança de foco, como também a tecla UP (seta pra cima) como um Shift+TAB:

KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();

        Set<AWTKeyStroke> teclasNext = new HashSet<>();
        teclasNext.add(AWTKeyStroke.getAWTKeyStroke("pressed TAB"));
        teclasNext.add(AWTKeyStroke.getAWTKeyStroke("pressed ENTER"));
        teclasNext.add(AWTKeyStroke.getAWTKeyStroke("pressed DOWN"));
        manager.setDefaultFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, teclasNext);

        Set<AWTKeyStroke> teclasPrevious = new HashSet<>();
        teclasPrevious.add(AWTKeyStroke.getAWTKeyStroke("pressed UP"));
        manager.setDefaultFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, teclasPrevious);

Ocorre que em uma outra classe JInternalFrame, o ENTER e a seta pra cima (UP) funcionam beleza, devido o código acima. Mas aí deixou de ouvir o ENTER, TAB e UP no seguinte código:

private void txtRazaoSocialClienteKeyReleased(java.awt.event.KeyEvent evt) {                                                  
        System.out.println("passou por aqui!");
        if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
            this.janelaInterna = ClienteConsulta.getInstancia(area_trabalho);
            if (this.janelaInterna.getParent() != area_trabalho) {
                area_trabalho.add(janelaInterna);
            }
            this.janelaInterna.show();
            area_trabalho.moveToFront(this.janelaInterna);
        }else{
            this.txtRazaoSocialCliente.setText(this.txtRazaoSocialCliente.getText().toUpperCase());
        }       
    }

Quaisquer outras teclas entram e imprimem no console o "passou por aqui!.

Como resolver este problema sem perder a facilidade do ENTER funcionando como o TAB, o UP como o Shift + TAB ?

Criado 24 de abril de 2013
Respostas 0
Participantes 1