Como executar uma ação apertando a tecla Enter ?
Eu fiz uma tela de login, porem quando eu termino de colocar usuário e senha eu queria que quando apertasse a tecla Enter o login ficasse valido ao invés de clicar com o mouse no botão entrar.
Eu tenho um campo de usuário e outro de senha
e também tenho um botão de entrar e outro de sair.
O que devo fazer ?
ir na opção KeyPressed do campo senha?
e qual seria o código para funcionar a tecla [b]Enter [/b]?
eu quero quando o terminar de digitar a senha e já pressionar enter.
me ajudem.
Jonilson N
Curtidas 0
Respostas
Carlos Heuberger
11/11/2011
[quote="Rapadura"]Eu fiz uma tela de login, porem quando eu termino de colocar usuário e senha eu queria que quando apertasse a tecla Enter o login ficasse valido ao invés de clicar com o mouse no botão entrar.
Eu tenho um campo de usuário e outro de senha
e também tenho um botão de entrar e outro de sair.
O que devo fazer ?
ir na opção KeyPressed do campo senha?
e qual seria o código para funcionar a tecla [b]Enter [/b]?
eu quero quando o terminar de digitar a senha e já pressionar enter.
me ajudem.
adicione um ActionListener ao campo e no método actionPerformed desse faz o que é para ser executa ao apertar o [b]Enter[/b]
[[]]
GOSTEI 0
Carlos Heuberger
11/11/2011
[quote="Rapadura"]Num ajudou ainda não.
essa sua afirmação também não ajuda.
pelo menos mostra o que você tentou fazer,
e onde está tendo problema.
GOSTEI 0
Marcos Wellington
11/11/2011
posta o código ae do q vc tem
GOSTEI 0
Mathews Motta
11/11/2011
[quote="Rapadura"]Num ajudou ainda não.
Amigo, primeiramente ninguém aqui é seu empregado. Se o sr. está com problemas, precisa de ajuda, peça encarecidamente e TORÇA para alguém disposto tentar analisar seu problema e tentar te ajudar.
Ele te deu uma solução e você não conseguiu implementá-la. Por que não conseguiu? Não encaixou a função? DE QUE FORMA VOCÊ TENTOU INCLUIR A SOLUÇÃO CITADA PELO SIMU EM SEU CÓDIGO? Não sabe implementar o que foi citado? Pergunte direito e pelo menos finja que se importa em dar um feedback construtivo.
GOSTEI 0
Jonilson N
11/11/2011
tudo bem desculpe se estou sendo grosseiro, eu achei que dava pra entender a minha duvida mas ta aqui o código
No campo senha eu fui lá em [b]Eventos>Key>KeyPressed[/b] pra ver se funcionava, mas não deu certo por isso peço que alguem me ajude.
if (evt.getKeyCode() == KeyEvent.VK_ENTER){ }
GOSTEI 0
Carlos Heuberger
11/11/2011
[quote="Rapadura"]tudo bem desculpe se estou sendo grosseiro, eu achei que dava pra entender a minha duvida mas ta aqui o código
No campo senha eu fui lá em [b]Eventos>Key>KeyPressed[/b] pra ver se funcionava, mas não deu certo por isso peço que alguem me ajude.
Já tinha entendido (acho) o que você quer alcançar!
Mas o que fez não está nem um pouco parecido com o que eu escrevi.
[quote="simu"][quote="Rapadura"]
[...]
if (evt.getKeyCode() == KeyEvent.VK_ENTER){ }
senha.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ev) { // código a ser executado se pressionar // ENTER no campo 'senha' doLogin(); // EXEMPLO } });
GOSTEI 0
Mathews Motta
11/11/2011
[quote="Rapadura"]tudo bem desculpe se estou sendo grosseiro
Sem problemas. Me desculpa a forma como falei também.
Mas foi bom para servir como exemplo para eventos futuros. Veja que você simplesmente falou "Não ajudou", mas na verdade nem tinha tentado colocar o que ele ensinou. Sacou?
GOSTEI 0
Douglas Eric
11/11/2011
Elmatador. Se você postar aqui também, falando pra mim banir o Mathews.... vão ter consequências.
GOSTEI 0
Douglas Eric
11/11/2011
Acho que entendi seu problema.
Também estou trabalhando em um programa onde é necessário digitar login e senha e depois clicar no botão "Logar".
A solução, para o meu caso, é bem simples... Dentro do seu método que monta a janela (na classe que contém seu JFrame), basta adicionar o código:
Espero ter ajudado!
:)
meuFrame.getRootPane().setDefaultButton(btLogin);
GOSTEI 0
Douglas Eric
11/11/2011
**Complementando...
Para que seu botão execute alguma ação depois de pressionar "Enter" no teclado, [b]é[/b] necessário que você tenha um [i]ActionListener[/i] atribuído a ele, como mostrou o simu:
btLogin.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ev) { // código a ser executado se pressionar // ENTER no campo 'senha' doLogin(); // EXEMPLO } });
GOSTEI 0
Douglas Eric
11/11/2011
tem um problema nessa história.
Pelo menos comigo.
Quando eu coloco um actionListener em um botão,
ele só funciona se eu clicar.
Se eu apertar o enter com ele selecionado, não!
mas se eu apertar a barra de espaço, ae funciona.
Por que será isso??
GOSTEI 0
Douglas Eric
11/11/2011
:arrow:
Funciona perfeitamente aqui...
A classe já implementa [i]ActionListener[/i], dentro do [i]actionPerformed()[/i] faço verificação e tals...
private JButton login_bt; public TelaLogin() { //... interface... login_bt = new JButton("Logar"); login_bt.addActionListener(this); //..... mais interface janela.getRootPane().setDefaultButton(login_bt); }
GOSTEI 0
Douglas Eric
11/11/2011
meus actionlisteners nos jbuttons só funcionam com a barra de espaço :shock: :shock: :shock:
GOSTEI 0
Douglas Eric
11/11/2011
[quote="sekkuar"]meus actionlisteners nos jbuttons só funcionam com a barra de espaço :shock: :shock: :shock:
Realmente muito útil vc ter uma variedade imensa de actionlisteners só podendo apertar espaço !!
Hahahaha!
GOSTEI 0
Douglas Eric
11/11/2011
[quote="sekkuar"]tem um problema nessa história.
Pelo menos comigo.
Quando eu coloco um actionListener em um botão,
ele só funciona se eu clicar.
Se eu apertar o enter com ele selecionado, não!
mas se eu apertar a barra de espaço, ae funciona.
Por que será isso??
deve estar usando o Look&Feel Metal ou Ninbus... tenta um outro (Motif, Windows, ...)
[[]]
GOSTEI 0
Douglas Eric
11/11/2011
[quote="Rapadura"]ir na opção KeyPressed do campo senha?
e qual seria o código para funcionar a tecla [b]Enter [/b]?
public void keyPressed(KeyEvent ke) { if (ke.getKeyCode() == KeyEvent.VK_ENTER) { // pressionou enter } }
GOSTEI 0
Douglas Eric
11/11/2011
[quote="sekkuar"]meus actionlisteners nos jbuttons só funcionam com a barra de espaço :shock: :shock: :shock:
Veja este link: [url]http://download.oracle.com/javase/tutorial/uiswing/misc/keybinding.html[/url]
[quote="MathewsMotta"]
Realmente muito útil vc ter uma variedade imensa de actionlisteners só podendo apertar espaço !!
Hahahaha! GOSTEI 0
Douglas Eric
11/11/2011
e o ActionMap padrão (default) depende do Look&Feel...
GOSTEI 0
Douglas Eric
11/11/2011
[quote="simu"]e o ActionMap padrão (default) depende do Look&Feel...
Deve ser.
Nas minhas aplicações eu uso o look and feel [url=http://www.jtattoo.net/]JTattoo[/url].
Mas, se eu alterar o ActionMap (link que o starosk me mandou), quando o look and feel mudar, ele vai ser sobreescrito de novo?
Pois, eu tenho um menu para o usuário escolher entre os diferentes look and feels e themes da biblioteca.
GOSTEI 0
Douglas Eric
11/11/2011
[quote="staroski"]
Não ha variedade, a interface ActionListener é uma só.
O que acontece é que o ActionMap de cada componente é que determina quais ações notificam as instancias de ActionListener registradas para o componente
Na verdade o que eu quis dizer é que você pode fazer um actionlistener diferente para cada botão do teclado.
GOSTEI 0
Douglas Eric
11/11/2011
[quote="MathewsMotta"][quote="staroski"]
Não ha variedade, a interface ActionListener é uma só.
O que acontece é que o ActionMap de cada componente é que determina quais ações notificam as instancias de ActionListener registradas para o componente
Na verdade o que eu quis dizer é que você pode fazer um actionlistener diferente para cada botão do teclado. GOSTEI 0
Douglas Eric
11/11/2011
[quote="sekkuar"][quote="simu"]e o ActionMap padrão (default) depende do Look&Feel...
Deve ser.
Nas minhas aplicações eu uso o look and feel [url=http://www.jtattoo.net/]JTattoo[/url].
Mas, se eu alterar o ActionMap (link que o starosk me mandou), quando o look and feel mudar, ele vai ser sobreescrito de novo?
Pois, eu tenho um menu para o usuário escolher entre os diferentes look and feels e themes da biblioteca. GOSTEI 0
Douglas Eric
11/11/2011
Desculpem por ressuscitar um tópico antigo, mas estava com o mesmo problema e uma das primeiras páginas que me apareceu foi essa.
Resolvi meu problema da seguinte maneira:
Utilizei a IDE Netbeans. Clicando com o botão direito no campo desejado selecionei a opção Eventos > Key > KeyPressed.
Toda vez que uma tecla for pressionada nesse campo, essa função será chamada.
Observe que a função recebe como parâmetro o evt, que contém todas as informações da tecla que acabou de ser pressionada.
Tudo que precisa fazer é comparar o código dessa tecla (evt.getKeyCode()) com a da tecla que você deseja. No meu caso, Utilizei o KeyEvent.VK_SPACE, que retorna um inteiro correspondente à tecla desejada, no caso o espaço.
private void TabelaKeyPressed(java.awt.event.KeyEvent evt) { if (evt.getKeyCode() == KeyEvent.VK_SPACE){ //O botão desejado foi pressionado então só preciso //inserir o código aqui, no caso, execute o código do botão que realiza o login } }
GOSTEI 0