rt,用java哈,谢谢

解决方案 »

  1.   

    建议看看javadoc中KeyEvent类。里面有个方法:   
      boolean   isActionKey()     
                          Returns   whether   the   key   in   this   event   is   an   "action"   key.     
      对应的keyCode分别是:   
      static   int   VK_INSERT     
      static   int   VK_NUM_LOCK     
      static   int   VK_CAPS_LOCK
      

  2.   

    首先添加一个文本域,向里面输入文字,然后为这个文本域添加键盘事件
    当你有东西输入时,它会得到你输入的文字,然后通过判断这个文字的大小写可以知道CAPS LOCK是否被按下了
    JTextField jtf=new JTextField(3);
    jtf.addKeyListener(new KeyAdapter(){
    public void keyTyped(KeyEvent ke){
    if(Character.isUpperCase(ke.getKeyChar()){
    System.out.println("Caps lock按下了");
    ke.consume();
    }}
    });
      

  3.   


    首先添加一个文本域,向里面输入文字,然后为这个文本域添加键盘事件
    当你有东西输入时,它会得到你输入的文字,然后通过判断这个文字的大小写可以知道CAPS LOCK是否被按下了
    JTextField jtf=new JTextField(3);
    jtf.addKeyListener(new KeyAdapter(){
    public void keyTyped(KeyEvent ke){
    if(Character.isUpperCase(ke.getKeyChar()){
    System.out.println("Caps lock按下了");
    ke.consume();
    }}
    });似乎行不通哦,如果按着shift输入大写,能说caps lock被按下么???
      

  4.   

    //have a try:import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;public class Locks {
       public static void main(String args[]) {
         Runnable runner = new Runnable() {
           public void run() {
             JFrame frame = new JFrame("Locks");
             frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);         JTextArea textArea = new JTextArea();
             JScrollPane scrollPane = new JScrollPane(textArea);
             frame.getContentPane().add(scrollPane, BorderLayout.CENTER);         // Create status bar with one label per watched locking key
             JPanel statusBar = new JPanel(new GridLayout(1, 3));
             final JLabel numLock = new JLabel("", JLabel.CENTER);
             statusBar.add(numLock);
             final JLabel capsLock = new JLabel("", JLabel.CENTER);
             statusBar.add(capsLock);
             final JLabel scrollLock = new JLabel("", JLabel.CENTER);
             statusBar.add(scrollLock);
         frame.getContentPane().add(statusBar, BorderLayout.SOUTH);         setKeyStatus(numLock, KeyEvent.VK_NUM_LOCK, "Num");
             setKeyStatus(capsLock, KeyEvent.VK_CAPS_LOCK, "Caps");
             setKeyStatus(scrollLock, KeyEvent.VK_SCROLL_LOCK, "Scroll");         KeyListener listener = new KeyAdapter() {
               public void keyPressed(KeyEvent keyEvent) {
                 if (keyEvent.getKeyCode() == KeyEvent.VK_NUM_LOCK) {
                   setKeyStatus(numLock, KeyEvent.VK_NUM_LOCK, "Num");
                 } else if (keyEvent.getKeyCode() == KeyEvent.VK_CAPS_LOCK) {
                   setKeyStatus(capsLock, KeyEvent.VK_CAPS_LOCK, "Caps");
                 } else if (keyEvent.getKeyCode() == KeyEvent.VK_SCROLL_LOCK) {
                   setKeyStatus(scrollLock, KeyEvent.VK_SCROLL_LOCK, "Scroll");
                 }
               }
             };
             textArea.addKeyListener(listener);         frame.setSize(250, 150);
             frame.setVisible(true);
           }
         };
         EventQueue.invokeLater(runner);
       }   private static void setKeyStatus(JLabel label, int key, String prefix) {
         Toolkit toolkit = Toolkit.getDefaultToolkit();
         String status = (toolkit.getLockingKeyState(key) ? "On" : "Off");
         label.setText(prefix+status);
       }
    }