10

CapsLockがオフの場合にオンにする方法の具体例を教えてください。

私はキーを切り替える方法を知っています、私はこれを使用しています:

toolkit.setLockingKeyState(KeyEvent.VK_CAPS_LOCK, Boolean.TRUE);

これにより、キーがオンかオフかに関係なく、キーの状態が変更されます。ただし、アプリケーションの開始時にオンになっていることを確認したいと思います。

(最終的な目標は、キーボードのLEDを特定の順序で点滅させることです。これは、特定の開始状態がある場合にうまく機能します。)

4

2 に答える 2

19

getLockingKeyStateCapsLockが現在設定されているかどうかを確認するために使用できます。

boolean isOn = Toolkit.getDefaultToolkit().getLockingKeyState(KeyEvent.VK_CAPS_LOCK);

ただし、これは不要setLockingKeyStateです。キーの状態を切り替えるのではなく、設定します。これを渡すとtrue、元の状態に関係なく、キーの状態がオンに設定されます。

Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_CAPS_LOCK, true);
于 2011-09-15T17:57:11.367 に答える
0
/*
 * 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();
    }
}
于 2021-02-02T07:11:13.200 に答える