我希望能够得到一个具体的示例,以便在小写锁定处于关闭状态时打开大写锁定。
我知道如何切换按键,我一直在使用这个:
toolkit.setLockingKeyState(KeyEvent.VK_CAPS_LOCK, Boolean.TRUE);
那会改变按键的状态,无论它原本是开还是关。
但我想确保在应用程序开始时它处于开启状态。(最终目标是让键盘LED以特定的顺序闪烁,如果有特定的起始状态,效果会更好。)
getLockingKeyState
来检查当前是否设置了大写锁定键:boolean isOn = Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK);
然而,这是不必要的--setLockingKeyState
不会切换键的状态,它只会设置它。如果你传递true
,它将无论原始状态设置键状态为打开:Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_CAPS_LOCK, true);
Boolean
只会强制 Java 对其进行拆箱。 - Michael Mrozek/*
* 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();
}
}
Toolkit toolkit = Toolkit.getDefaultToolkit();
robik.keyPress(KeyEvent.VK_SPACE); // PRESS ANY KEY // Any key needs to be pressed
Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_CAPS_LOCK, true);
robik.keyRelease(KeyEvent.VK_SPACE);
getLockingKeyState()
吗?http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Toolkit.html#getLockingKeyState(int) - NPE