Java 如果Caps Lock状态不是',如何获取并将其设置为on;还没有?
我想要一个具体的例子,说明如何在关闭caps lock时打开它 我知道如何切换键,我一直在使用:Java 如果Caps Lock状态不是',如何获取并将其设置为on;还没有?,java,toggle,capslock,Java,Toggle,Capslock,我想要一个具体的例子,说明如何在关闭caps lock时打开它 我知道如何切换键,我一直在使用: toolkit.setLockingKeyState(KeyEvent.VK_CAPS_LOCK, Boolean.TRUE); 这将改变钥匙的状态,无论它是开还是关。 但我想确保它在应用程序开始时处于打开状态 (最终目标是让键盘指示灯按特定顺序闪烁,如果我有特定的启动状态,效果会更好。)您可以使用检查当前是否设置了Caps Lock: boolean isOn = Toolkit.getDefa
toolkit.setLockingKeyState(KeyEvent.VK_CAPS_LOCK, Boolean.TRUE);
这将改变钥匙的状态,无论它是开还是关。
但我想确保它在应用程序开始时处于打开状态
(最终目标是让键盘指示灯按特定顺序闪烁,如果我有特定的启动状态,效果会更好。)您可以使用检查当前是否设置了Caps Lock:
boolean isOn = Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK);
但是,这是不必要的--setLockingKeyState
不会切换键的状态,而是设置键的状态。如果您将其传递到true
则无论原始状态如何,它都会将按键状态设置为on:
Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_CAPS_LOCK, true);
您看过
getLockingKeyState()
了吗?实际上我试过使用它,但出于某种原因,我很难将它放在if-else语句中。我想这样用。我可以用它作为布尔值,并尝试这样做。你有没有一个例子,你会检查状态的上限锁定切换,如果它已经打开,你只会继续,否则使用方法,我上面列出的打开它。谢谢你的帮助。我现在也会看看你的链接。你想通过这样做实现什么?看起来(不管是什么),你走错了方向。实际上,我只是在为AP计算机科学做一个有趣的项目,我只想让键盘上的灯按一定的顺序闪烁,为了获得最佳效果,所有的按键都必须先打开或关闭。好的,我试过这种方法,如果它是真的,它会关闭它,如果它是开的,打开它,如果它是关的。奇怪…哦。等等,如果我把布尔值去掉,然后把instead@Mike这不要紧;该函数接受一个布尔值
,因此传递布尔值
只会强制java将其取消装箱
/*
* 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();
}
}