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.
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
Desculpe Eliangela, mas a indicação de implementação não funcionou. Poderia, se possível, dar mais detalhes da sua implementação?
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<AWTKeyStroke> key1 = new HashSet<AWTKeyStroke>();
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);
Ah, sim…
Este código vc coloca no construtor do seu JFrame.
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.
Usa esse código então:
[code] jButton1.addKeyListener(new KeyAdapter() {
@Override
public void keyTyped(KeyEvent e) {
if (e.getKeyChar() == '*') {
System.out.println("Funcionou *");
}
}
});[/code]
Quando vc apertar * no botão, vai ser como se tiver apertado ENTER.
*** Espero que desta vez eu tenha entendido, rsrs
Então Eliangela fiz o seguinte:
- 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);
//----------------------------------------------------------------------------//
-
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.
[quote=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[/quote]
Bom… sobre o teclado, realmente se vc teclar espaço, acaba com a mesma funcionalidade do Enter.
[quote=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. :)[/quote]
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