Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果Caps Lock状态不是',如何获取并将其设置为on;还没有?_Java_Toggle_Capslock - Fatal编程技术网

Java 如果Caps Lock状态不是',如何获取并将其设置为on;还没有?

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

我想要一个具体的例子,说明如何在关闭caps lock时打开它

我知道如何切换键,我一直在使用:

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();
    }
}