Agora, como verificar mesmo que a janela principal esteja desativada. Tenho uma JLabel para mostrar ON ou OFF quero que ela mude ao precionar caps mesmo que a janela principal estega minimizada ou desativada, assim como acontece no Delphi (Pascal).
Crie uma Thread para isso de uma estuda sobre thread
denirroberto
AlissonSchneider:
já tentou utilizar
espero ter ajudado
;)
O parceiro já sim mas o tipo primitivo não afeta quando se usa na mesma classe.
denirroberto
Puts parceiro, me de um exemplo dessa tal de thread
visola
Você precisa registrar dois listeners na sua janela principal:
FocusListener - toda vez que o usuário alternara para outra janela de outro programa e voltar, você verifica o status da tecla CAPSLOCK e atualiza na sua janela
KeyListener - toda vez qeu o usuário apertar uma tecla, você verifica e atualiza o status na sua janela
Se o KeyListener não funcionar, pode usar o AWTEventListener, registrando-o no toolkit da seguinte forma:
Onde meuListener é a instância da implementação de AWTEventListener. Este tipo de listener (AWTEventListener) ouve todos os eventos que acontecem na sua aplicação, não importando qual janela esteja selecionada. Se for o caso de sua aplicação ter mais de uma janela.
AlissonSchneider
denirroberto:
AlissonSchneider:
já tentou utilizar
espero ter ajudado
;)
O parceiro já sim mas o tipo primitivo não afeta quando se usa na mesma classe.
Sim entendo eu imaginei que você chamaria isso em outra tela ou seja outra classe como por exemplo tivesse na texa x e pressionasse o botao e alterasse a y
abrass
visola
Já que os listeners não deram certo para você (rolaram umas mensagens privadas aqui pessoal), então você vai ter que usar uma thread como o leonardobhbr disse:
Uma thread que verifique o estado da tecla de tempos em tempos e controlar o ciclo de vida dela. Algo do tipo:
publicclassVerificadorCapsLockextendsThread{privatebooleanparar=false;publicvoidparar(){parar=true;}publicvoidrun(){while(!parar){// coloca o código do seu método aquitry{Thread.sleep(100);// dorme por 100 milisegundos}catch(InterruptedExceptionie){}}}}
Depois em algum lugar na inicialização da sua aplicação:
VerificadorCapsLock verificador = new VerificadorCapsLock();
verificador.start();
E quando sua aplicação estiver sendo fechada:
verificador.parar();
denirroberto
Blz parcerada, é isso ai, fiz alguns ajustes para adaptar na minha aplicação e ficou show, maravilha, o caminho é esse mesmo eu tava misturando acesso nativo com Java. Valeu galera.