在软件开发的过程中,涉及到触屏键盘的设计问题,利用Java swing来设计一个键盘,实现数据的传输。在网上看到了这段代码,自己看明白了设计原理,并加了一些注释,代码如下:
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
/* 设置Java键盘本质上利用swing图形界面控制相关的知识,来在JFrame中搭建一个键盘界面,实现利用键盘控制输入,
* 电脑键盘的主面板主体包含有二十六个字母和诗歌数字以及其他相关字符,如果利用按钮时间一个一个实现,那将花费
* 太多的时间和经历, 故而在这个例子中,很好地利用了数组,即将键盘中的 键按行 来分为五个数组,每个数组包含一
* 行键盘的字符,利用数组来实现键盘的设置,
*/
public class tEST1 extends JPanel implements ActionListener{
JTextField text ;
Robot robot;
//line1到line5分别表示键盘的第一排到第五排,在Java中,每一个键有自己的keycode值,
//例如:0~9的keycode是48~57,A~Z是65~90;
int[] line1 = {192,49,50,51,52,53,54,55,56,57,48,45,61,8}; // 按键的第一排
int[] line2 = {81,87,69,82,84,89,85,73,79,80,91,93,92}; // q到\ 没有tab
int[] line3 = {KeyEvent.VK_CAPS_LOCK,65,83,68,70,71,72,74,75,76,59,222,10}; // 大写到'
int[] line4 = {16,90,88,67,86,66,78,77,44,46,47,38}; // shift到 向上
in