KeyListener em uma tela de login

6 respostas
J

Bom dia pessoal!

Estou fazendo um programa aqui onde a primeira tela é a de login. Estou precisando que quando eu aperte a tecla ENTER, “clique” automaticamente na tela LOGAR. Estou tendo que clicar no botão e apertar a tecla ficaria bem mais fácil. Utilizo JFormDesigner para fazer meus frames e outras telas e preciso da ajuda de vocês.

Valeu!!

6 Respostas

ViniGodoy

Dê o comando

getRootPane().setDefaultButton(seuBotaoDeLogar);

Isso fará com que o botão seja o “Default”. Ele será desenhado mais forte e o enter irá ativa-lo.

J

Fantástico! Era isso mesmo que eu tava querendo. Deu certo!
Aproveitando você sabe como fazer com que quando eu aperte outra tecla, por exemplo ESC ela feche o programa?!
E também quando vou dando TAB e estiver em SAIR ao invés de LOGAR, o ENTER funcionar pro SAIR, porque, mesmo estando com o TAB no SAIR se eu dou ENTER ele entre no programa.

Valeu!!

ViniGodoy

Para o esc, basta registrar um ActionMap nesse seu formulário.

KeyStroke stroke = KeyStroke.getKeyStroke("ESCAPE");
Action actionListener = new AbstractAction() {
   public void actionPerformed(ActionEvent actionEvent) {
      System.exit(0);
   }
};

InputMap inputMap = rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);

inputMap.put(stroke, "ESCAPE");
getRootPane().getActionMap().put("ESCAPE", actionListener);
jingle

bom aproveitando o tópico sabe como alterar o botão padrão de acionamento dos botões no java?

porque aqui se estou em um botão e aperto ENTER ele não faz nada… mas se aperto a barra de espaço ele ativa o action performed… mas queria usar o enter… e não queria ficar tratando botão por botão…

ViniGodoy

Isso eu não sei. Meus clientes são meio chatos, mas nem tanto. :lol:

J

Eita disgrama de código! :smiley:
Ta tenso aqui :frowning:

Criado 29 de outubro de 2008
Ultima resposta 29 de out. de 2008
Respostas 6
Participantes 3