日期:2014-05-20  浏览次数:20953 次

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

------解决方案--------------------
Java code
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)); [color=#FF0000]// 强制修改事件的键盘字符[/color]
    
    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