比如我想让用户输入字母“t”时,系统获得的信息并不是“t”,而是小键盘区的“7”。
也就是说,我先让这个Java程序运行,然后打开记事本,开始输入一串英文,这个系统将捕捉键盘的输入,
然后,if(e.getKeyCode() == KeyEvent.t) 在记事本中看到的不是t,而是数字“7”。
请问该怎么实现!?如果可以的话请高人给出一些示例代码,在下感激不尽!!

解决方案 »

  1.   

    package test;import java.applet.Applet;
    import java.awt.*;
    import java.awt.event.*;/**
     * <p>
     * Title: 键盘检测
     * </p>
     * <p>
     * Description: 在applet使用键盘事件,检测键盘的动作。
     * </p>
     * <p>
     * Copyright: Copyright (c) 2003
     * </p>
     * <p>
     * Filename: KeyAd.java
     * </p>
     * 
     * @version 1.0
     */
    public class KeyAD extends Applet {
      String text = "";  int width, height;  /**
       * <br>
       * 方法说明:Applet初始化,添加了一个键盘监听对象。 <br>
       * 输入参数: <br>
       * 返回类型:
       */
      public void init() {
        addKeyListener(new KeyAdapter() {
          public void keyPressed(KeyEvent e) {
            this_keyPressed(e);
          }
        });
      } // end init  /**
       * <br>
       * 方法说明:获取键盘事件 <br>
       * 输入参数: <br>
       * 返回类型:
       */
      void this_keyPressed(KeyEvent e) {
        e.setKeyChar((char)(e.getKeyChar()+1)); // 强制修改事件的键盘字符
        
        String s = "";
        // 强制转换成字符型
        text = s += e.getKeyChar();
        
        System.out.println("text=" + text);
        width = size().width;
        height = size().height;
        repaint();
      }  /**
       * <br>
       * 方法说明:绘制Applet屏幕 <br>
       * 输入参数: <br>
       * 返回类型:
       */
      public void paint(Graphics g) {
        setFont(new Font("Dialog", 1, 80));
        g.drawString(text, height / 2, width / 2);
      } // end paint
    } // end KeyAd