[resolvido] Swing - evento teclado

1 resposta
panthovillas
treeLookup.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).
                put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "clickENTER");
        treeLookup.getActionMap().put("clickENTER", new AbstractAction() {

            private static final long serialVersionUID = 1L;

            @Override
            public void actionPerformed(ActionEvent e) {
                if (btnConfirm.isVisible()
                    && btnConfirm.isEnabled() //                        && treeLookup.getSelectedRowCount() > 0
                        ) {

                    btnConfirm.doClick();
                }
            }
        });

        treeLookup.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).
                put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "clickESC");
        treeLookup.getActionMap().put("clickESC", new AbstractAction() {

            private static final long serialVersionUID = 1L;

            @Override
            public void actionPerformed(ActionEvent e) {
                if (btnCancel.isVisible()
                    && btnCancel.isEnabled()) {

                    btnCancel.doClick();
                }
            }
        });

O evento do ESC funciona normalmente. O evento do ENTER não funciona.
Por que ? Alguem sabe explicar ?

Pelo que to vendo, o enter não esta lançando uma action.
Como faço para o enter lançar a action ?

Obrigado.

1 Resposta

panthovillas

// // faz o ENTER ter a mesma utilidade do TAB // HashSet conj = new HashSet(this.getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS)); // conj.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_ENTER, 0)); // this.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, conj);

ta classe extendida tava alterando o enter pra tab.
Resolvido.

Criado 6 de setembro de 2012
Ultima resposta 6 de set. de 2012
Respostas 1
Participantes 1