GWT evento tecla enter

13 respostas
PatricMaffi

Boa tarde pessoal

meu problema eh o seguinte, tenho 2 campos numa tela de login
e quero que depois de serem preenchidos, teclando o botao enter
ele acione o evento do botao de login na tela.

sem precisar ir com o mouse la no botao para dar o evento

alguem tem uma solução

agradecimentos antecipados aos bons samaritanos

[]/s

13 Respostas

Eder_Peixoto

Você precisa criar um método(digamos que seja “processLogin()”) e três ouvintes. O método será chamado pelos ouvintes.
Um ouvinte tratará os eventos gerados no pressionamento do botão de login;
Os outro dois tratarão os eventos de teclado nos campos onde serão digitados os dados, ou seja, um ouvinte para cada campo.
Quando um ouvinte for acionado, esse deve chamar o método “processLogin()”.

Essa é a idéia de como pode ser realizado. No botão de login você pode ainda criar ouvintes para tratar eventos de teclado(poderia verificar se foi pressionado ENTER) e mouse(trata os cliques do mouse), por exemplo.

Dê uma olhada nas classes: java.awt.event.MouseListener, java.awt.event.MouseEvent, java.awt.event.KeyListener e java.awt.event.KeyEvent.

Espero ter ajudado, se é que não compliquei ainda mais.

PatricMaffi

eu ja tentei adicionar um keyboard listener
do pacote do gwt mesmo

o que eu não consegui identificar era que o botão pressionado era o “ENTER”
para chamar a função de verificar o login e senha

quero saber se alguem sabe como identificar que o botao pressionado
seja com keyboardlistener ou de outra forma
para poder executar o login

hudson.negao

cara eu nunca mexi com gwt, mais me falaram que é parecido com swing entao vou tentar deixar
uma contribuição.
você pode dar uma procurada pelo codigo ascII da tecla enter e fazer um if dentro do seu keyboard listener
se nao me engano eh o #28 ou #13 nao me lembro direito mais da uma procurada cara.
espero ter ajudado

Eder_Peixoto

Patric,

Eu não conheço o gwt, mas se fosse no swing, você faria o seguinte:

Pegaria o evento e obteria a tecla pressionada (algum dos métodos get faz isso. Agora não me lembro qual);
Faria um if comparando a tecla obtida pelo evento com o KeyEvent.VK_ENTER.

Eu criei uma classe que realiza verificações sobre teclas pressionadas pelo teclado (capturadas por eventos), que utilizo quando uso swing. Se quiser dar uma olhada, posso colocar aqui no fórum.

G

Ola!
Para identificar basta comparar com o keycode que você recebe quando implementa o listener com o codigo do enter.
Para pegar o codigo do enter basta você fazer o seguinte: KeyboardListenerAdapter.KEY_ENTER

[]'s

PatricMaffi

Meu problema continua

vou postar uma parte do codigo e explicar o que acontece

ptxbSenha.addKeyboardListener(new KeyboardListenerAdapter()
        {
            public void onKeyDown(Widget arg0, char keyCode, int arg2) 
            {
                 if(keyCode == KEY_ENTER)
                 {
                     verificarLogin();  
                 }
            }
       });

problema que o keycode vem sem valor algum
vi exemplos iguais a este onde eh comparado o keycode com KEY_ENTER
mais no meu caso esta vindo vazio

G
PatricMaffi:
Meu problema continua

vou postar uma parte do codigo e explicar o que acontece

ptxbSenha.addKeyboardListener(new KeyboardListenerAdapter()
        {
            public void onKeyDown(Widget arg0, char keyCode, int arg2) 
            {
                 if(keyCode == KEY_ENTER)
                 {
                     verificarLogin();  
                 }
            }
       });

problema que o keycode vem sem valor algum
vi exemplos iguais a este onde eh comparado o keycode com KEY_ENTER
mais no meu caso esta vindo vazio

toque KEY_ENTER por KeyboardListenerAdapter.KEY_ENTER

PatricMaffi

agora deu certo

valeu pela ajuda ai

[]/s

robson_vs

PatricMaffi:
agora deu certo

valeu pela ajuda ai

[]/s

Cara gostaria de fazer algo parecido estou começando com o gwt vc poderia me passar seu código de login para mim ter um exemplo?

PatricMaffi
tiSenha.addKeyPressHandler(new KeyPressHandler() {

            public void onKeyPress(KeyPressEvent event) {

                int cod = event.getCharCode();
                if(cod == 13)
                {
                    controleManterUsuarios.realizarLogin();
                }
            }
        });
robson_vs
PatricMaffi:
tiSenha.addKeyPressHandler(new KeyPressHandler() {

            public void onKeyPress(KeyPressEvent event) {

                int cod = event.getCharCode();
                if(cod == 13)
                {
                    controleManterUsuarios.realizarLogin();
                }
            }
        });
Cara deixa eu te perguntar estou iniciando com o gwt e estou passando pelo mesmo problema vc pode postar seu código de login para q eu possa dar uma avaliada?
PatricMaffi

Mais o código que eu estou usando foi este que eu postei acima
ao pressionar o “ENTER” ele gera um CharCode que é igual a 13

entao compare esse charcode para gerar o evento

robson_vs

PatricMaffi:
Mais o código que eu estou usando foi este que eu postei acima
ao pressionar o “ENTER” ele gera um CharCode que é igual a 13

entao compare esse charcode para gerar o evento


Beleza eu ja consegui obrigado

Criado 20 de outubro de 2008
Ultima resposta 14 de jul. de 2010
Respostas 13
Participantes 5