Como saber se Capslock está ativado ou desativado!

9 respostas
H

Estou fazendo um GUI que le o nome do usuario e a senha
e eu queria saber se tem alguma jeito de saber se a tecla capslock está ativada ou nao.

Por enguanto eu adcionei ao JtextField e ao JPasswordField para escutar eventos do teclado. Ficou assim:

public void keyPressed( KeyEvent e )

{

if( e.getKeyCode ==  20 ) // Teste se eh capslock

{   }

}

O problema que deste jeito apenas me fala que o usuario apertou a tecla capslock. Isso nao resolve meu problema porque pode acontecer do usuario entra na tela de Login já com a tecla Capslock pressionado!
Alguem sabe como testa se a tecla está ativada ou nao??
Obrigado.

9 Respostas

C

Nao sei se da pra fazer isso, mas… nao era melhor dar uma mensagem de erro, caso a senha nao bata, pedindo pro usuario conferir se o CapsLock esta ligado, mais ou menos como o Windows XP faz? :slight_smile:

H

Essa msg de erro eu ja fiz…
eu queria justamente fazer igual o XP, qd vc aperta o CapsLock ativa um Tool Tip avisando o usuario.

D

Hum…

Pq vc não converte a senha digitada e a senha que vai comparar para maiusculas?

vai fica + ou - assim…

class Teste{


   public static void main(String args[]){

      String X = "";

      X = "dennys";

      System.out.println(X);

      X = X.toUpperCase();

      System.out.println(X);

   }

}

Flw!

Y

Hempx estou com o mesmo problema… mais o código da tecla Caps Lock é sempre 20 ativada ou desativada…
gostaria de saber… se tem como comparar quando ela está ativada mostrar o ToolTip … quando desativar… nao fazer nada…
abraço a todos

D

Olha o tópico que renasce :D
Esse tópico só tem 7 anos :D:D:D

Enfim, assim vc consegue verificar:

import java.awt.Toolkit;
import java.awt.event.KeyEvent;

public class TesteCapsLock {

    public static void main( String[] args ) {

        boolean capsLigado = Toolkit.getDefaultToolkit().getLockingKeyState(
                KeyEvent.VK_CAPS_LOCK );

        if ( capsLigado ) {
            System.out.println( "Caps Lock Ligado!" );
        } else {
            System.out.println( "Caps Lock Desligado!" );
        }

    }

}

[]´s

D

Ah, e se vc quiser ligar/desligar uma tecla, vc pode usar o método setLockingKeyState( código_da_tecla, onOuOff )

[]´s

Y
davidbuzatto:
Olha o tópico que renasce :D Esse tópico só tem 7 anos :D:D:D

Enfim, assim vc consegue verificar:

import java.awt.Toolkit;
import java.awt.event.KeyEvent;

public class TesteCapsLock {

    public static void main( String[] args ) {

        boolean capsLigado = Toolkit.getDefaultToolkit().getLockingKeyState(
                KeyEvent.VK_CAPS_LOCK );

        if ( capsLigado ) {
            System.out.println( "Caps Lock Ligado!" );
        } else {
            System.out.println( "Caps Lock Desligado!" );
        }

    }

}

[]´s

o topico pode até ser antigo.. mais nunca é tarde para aprender !!! obrigado pela dica..

D

Disponha :wink:

N

Olá Pessoal

Pegando a carona da ativação de Caps Lock, podemos na entrada do sistema ou de uma aplicação quando o usuário for digitar qq jtxtFields esta tecla já está ativada automaticamente?
Grato.

Criado 29 de setembro de 2003
Ultima resposta 11 de set. de 2012
Respostas 9
Participantes 6