Trocando TAB por ENTER e ENTER por ASTERISCO

8 respostas
A
Estou desenvolvendo um sistema em java utilizando o evento ActionPerformed no NetBeans 6.5.1. Desde já agradeço imensamente o pessoal que postou o código a seguir:
Set<AWTKeyStroke> key1 = new HashSet<AWTKeyStroke>();
key1.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_ENTER, 0));
KeyboardFocusManager.getCurrentKeyboardFocusManager().setDefaultFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, key1);
Funciona perfeitamente para trocar o foco utilizando a tecla ENTER. Só que o pessoal aqui da empresa está acostumado a utilizar um sistema anterior em Delphi e utiliza muito teclado numérico somente. Então gostaria de disparar agora o evento ActionPerformed por uma das teclas do teclado numérico, de preferência através da tecla ASTERISCO. 
Agradeço desde já algum esclarecimento.

8 Respostas

E

Olá!

Troque o KeyEvent.VK_ENTER por KeyEvent.VK_MULTIPLY.

O único inconveniente é que só funciona o asterisco do teclado numérico. O asterisco que fica em cima do 8 não funciona.

Eliangela

A

Desculpe Eliangela, mas a indicação de implementação não funcionou. Poderia, se possível, dar mais detalhes da sua implementação?

E

Pelo que eu entendi, vc quer mudar de campos usando o *. Se for isso vc pode usar esse código abaixo, que é quase idêntico ao que vc postou, só que, ao invés de colocar VK_ENTER, vc troca por VK_MULTIPLY, que o * do teclado numério funciona para trocar de campos.

Set&lt;AWTKeyStroke&gt; key1 = new HashSet&lt;AWTKeyStroke&gt;(); key1.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_MULTIPLY, 0)); //essa linha aqui: VK_MULTIPLY = * do teclado numérico KeyboardFocusManager.getCurrentKeyboardFocusManager().setDefaultFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, key1);

E

Ah, sim…
Este código vc coloca no construtor do seu JFrame.

A

Ah sim, Eliangela! Eu não me expressei bem. Eu troquei o TAB pelo ENTER utilizando o source apresentado. Só que eu perdi a função do enter de ativar os métodos embutidos nos botões, por exemplo. Então queria passar para a tecla asterisco a função do enter de ativar os eventos dos botões, por exemplo. No caso seria qualquer evento que a tecla enter dispara.

E

Usa esse código então:

jButton1.addKeyListener(new KeyAdapter() {

        @Override
        public void keyTyped(KeyEvent e) {
            if (e.getKeyChar() == '*') {
                System.out.println("Funcionou *");
            }
        }
    });

Quando vc apertar * no botão, vai ser como se tiver apertado ENTER.
*** Espero que desta vez eu tenha entendido, rsrs

A
Então Eliangela fiz o seguinte:
  1. Utilizei no sistema o seguinte código, mas como você disse anteriormente para o asterisco eu troquei para ESPAÇO:

//-------------------- UTILIZANDO ESPAÇO PARA TROCAR DE FOCO -----------------// Set<AWTKeyStroke> key1 = new HashSet<AWTKeyStroke>(); key1.add(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_SPACE, 0)); KeyboardFocusManager.getCurrentKeyboardFocusManager().setDefaultFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, key1); //----------------------------------------------------------------------------//

  1. Em seguida, conversando com o gerente do projeto utilizamos o seguinte teclado: (Sem apologia ao fabricante, poderia ser qualquer outro)
    http://www.mtek.com.br/index.asp?Page=produtos.asp&Id=172

    Com isso mantivemos a tecla ENTER e trocamos a funcionalidade do FOCO para uma tecla em destaque no teclado. Foi uma solução bem plausível para o nosso caso.
    Venho através desta mensagem também agradecer pelas contribuições e espero que a gente possa se encontrar mais vezes no fórum para estar sempre trocando idéias sobre java. :slight_smile:

E

abraao895:
2) Em seguida, conversando com o gerente do projeto utilizamos o seguinte teclado: (Sem apologia ao fabricante, poderia ser qualquer outro)
http://www.mtek.com.br/index.asp?Page=produtos.asp&Id=172

Bom… sobre o teclado, realmente se vc teclar espaço, acaba com a mesma funcionalidade do Enter.

abraao895:
Com isso mantivemos a tecla ENTER e trocamos a funcionalidade do FOCO para uma tecla em destaque no teclado. Foi uma solução bem plausível para o nosso caso.
Venho através desta mensagem também agradecer pelas contribuições e espero que a gente possa se encontrar mais vezes no fórum para estar sempre trocando idéias sobre java. :)

E tbem espero que continuemos a nos encontrar no fórum pra trocar umas idéias… .esse código que vc postou pra trocar o TAB por ENTER eu ainda não conhecia e foi muito útil pra mim no projeto que estou fazendo.
Obrigada :slight_smile:

Criado 8 de junho de 2009
Ultima resposta 10 de jun. de 2009
Respostas 8
Participantes 2