Pessoal como faco para mim inserir em uma tela um jlabel que apaga e acende conforme meu num lock e caps lock estiver pressionado?
mtu obrigado
captura o evento de keypressed, testa se o source do evento é uma dessas teclas, e se for monta o jlabel
Veja só suponhamos que eu travei o evento de capturar tecla keyPressed e estou aqui oh
case KeyEvent.VK_NUM_LOCK:
//problema aqui
break;
como faço para ele entender que se tiver presionado num_lock e a luz tiver acesa, aparece a jlabel mais escura no painel e se nao tiver pressionado o jlabel fica cinza !! pode me ajudar? obrigado
Você tem que criar um KeyListener no objeto que vai cuidar para ver se o Caps ou Num esta ativado
e depois pasta verificar no onKeyDown oy no keyReleased assim
Toolkit tk = Toolkit.getDefaultToolkit();
try {
return tk.getLockingKeyState(KeyEvent.VK_CAPS_LOCK);
} catch (Exception e) {
return false;
}
O try catch server para capturar um BUG da API no Linux, que não identifica o estado do teclado.
[]'s
[quote=ken420]Veja só suponhamos que eu travei o evento de capturar tecla keyPressed e estou aqui oh
case KeyEvent.VK_NUM_LOCK:
//problema aqui
break;
como faço para ele entender que se tiver presionado num_lock e a luz tiver acesa, aparece a jlabel mais escura no painel e se nao tiver pressionado o jlabel fica cinza !! pode me ajudar? obrigado[/quote]
Tem o método “getLockingKeyState” da classe Toolkit do AWT:
O resto é com você.
Inté.
eu consegui criar um metodo para capturar o caps lock porem ele so captura no momento que abro a tela aparece o prinln no console mas depois de aberto ele n tem mais ação como faco para ele capturar a todo momento e exibir para mim o println ? abaixo como está
public void CapsLock()
{
Toolkit tk = Toolkit.getDefaultToolkit();
if(tk.getLockingKeyState(KeyEvent.VK_CAPS_LOCK))
System.out.println("Caps Lock está ativada");
else
System.out.println("Caps Lock não está ativada");
}
up
Ressuscitando o tópico rsrsrsrs, também precisei fazer isso agora em um de nossos sistemas em Swing, a forma que consegui foi a seguinte:
adicionei uma label que informa se o capslock está ativo ou não “lblCaps”, e no textfield “txtSenha” eu adicionei os seguintes eventos:
[code]txtSenha.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent evt) {
msgCapsLock();
}
});
txtSenha.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
msgCapsLock();
}
});[/code]
e abaixo o método que habilita ou desabilita a label com a mensagem se está ou não com capslock de acordo com a situação do botão CAPSLOCK
private void msgCapsLock() {
if (Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK)) {
lblCaps.setVisible(true);
} else {
lblCaps.setVisible(false);
}
}