Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_NUM_LOCK);

Estou usando o método

Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_NUM_LOCK);

para verificar se o num lock está ativado, da primeira vez que é executado ele retorna o resultado correto, ou seja, quando esta ativado ele retorna true e quando não está rertorna false, o problema é que da segunda vez em diante ele retorna o mesmo resultado anterior, mesmo se eu alterar o o estado do num lock seja pelo método

setLockingKeyState(KeyEvent.VK_NUM_LOCK,ativado);

ou apertando o botão mesmo, ele retorna o estado anterio, da primeira execução do código,

Eu imagino que eteja acontecendo o seguinte: Da primeira vez que eu chamo Toolkit.getDefaultToolkit() ele instacia esse tal ToolKit com os valores atuais do sistema, e da segunda vez ele retorna a mesm instacia, gostaria de saber uma forma de atualizar esse Toolkit

se alguem puder e quiser ajudar fico muito grato, pois já estou hora tentando resolver isso.

Isso é um bug que nunca foi resolvido. Ele fala de “CAPS LOCK” mas o bug é exatamente o mesmo.

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4414164

E existe alguma forma de contornar isto ?

estou usando SWT e pelo que entendi é necessário que o focus não sai de um comoponente AWT para que o método funcione

da pra fazer alguma gambiarra ou sei lá.

tentei usar o classe Robot, mas também não atualizou o estado do num lock.