verificarCapsLook no linux

6 respostas
B
Bom dia, preciso verificar se o capsLook do usuário está ativo ( um programa Desktop) até ai tranquilo estou fazendo isso com o método abaixo
public static boolean verificarCapsLook() {
    //    if (System.getProperty("os.name").toUpperCase().contains("WINDOWS")) {
            boolean capsLigado = Toolkit.getDefaultToolkit().getLockingKeyState(
                    KeyEvent.VK_CAPS_LOCK);
            if (capsLigado) {
                return true;
            }
    //    }
        return false;

    }
mas esse método só funciona no Windows, como eu posso fazer um que seja genérico ou que funcione em linux? no linux da erro ao executar ai eu tive que colocar o if que está comentado para executar no linux sem executar o método pois passa por fora do if

6 Respostas

J

Não testei, mas talvez te ajude:

boolean state= Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK);
B

Amigo, infelizmente também não funcionou no linux, eu não tenho ideia de como fazer funcionar!? por ocaso tem outra sugestão?

Marcelo_de_Andrade

Verifica isso aqui:

http://weblogs.java.net/blog/rah003/archive/2007/11/log_me_in_log_m.html

matheuslmota

Use Toolkit.getLockingKeyState(KeyEvent.VK_CAPS_LOCK):
http://docs.oracle.com/javase/1.5.0/docs/api/java/awt/Toolkit.html#getLockingKeyState(int)

E

Gente, todo mundo que está dizendo para usar getLockingKeyState(KeyEvent.VK_CAPS_LOCK) não viu que há um problema, que é o de isso não estar implementado corretamente no Linux (ele lança uma exceção UnsupportedOperationException).

matheuslmota

entanglement:
Gente, todo mundo que está dizendo para usar getLockingKeyState(KeyEvent.VK_CAPS_LOCK) não viu que há um problema, que é o de isso não estar implementado corretamente no Linux (ele lança uma exceção UnsupportedOperationException).

Não tinha notado isso, falha minha.

Criado 9 de setembro de 2012
Ultima resposta 9 de set. de 2012
Respostas 6
Participantes 5