我想要一个关于如何在大写锁定关闭时打开它的具体示例。
我知道如何切换键,我一直在使用这个:
toolkit.setLockingKeyState(KeyEvent.VK_CAPS_LOCK, Boolean.TRUE);
这将改变键的状态,无论它是打开还是关闭。但我想确保它在应用程序开始时处于打开状态。
(最终目标是让键盘 LED 以特定顺序闪烁,如果我有特定的起始状态,效果会更好。)
您可以使用getLockingKeyState
检查当前是否设置了 Caps Lock:
boolean isOn = Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK);
但是,这是不必要的——setLockingKeyState
它不会切换键的状态,而是设置它。如果你通过它,true
它会将键状态设置为打开,而不管原始状态如何:
Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_CAPS_LOCK, true);
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication52;
import java.awt.Toolkit;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JTextField;
/**
*
* @author DSF Inc - Admin
*/
public class JavaApplication52 extends JFrame {
JavaApplication52() {
setLayout(null);
JTextField t = new JTextField();
t.setBounds(0,0,300,20);
add(t);
t.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
boolean isOn = Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK);
if (isOn == true) {
System.err.println("ON");
} else {
System.err.println("OFF");
}
}
});
setSize(300, 400);
setVisible(true);
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
JavaApplication52 fr = new JavaApplication52();
}
}