JAVA(计算器)响应键盘消息
各位大虾,请帮忙看看,下面程序是一个非常简单的计算器,它的计算数字只有1和2,只有加法运算!该计算器可以响应JPanel上的点击,那在该程序基础上怎样可以响应键盘上的消息呢? 
 比如说键盘输入:1+2      . 
 非常感谢!   
 程序代码如下: 
 import   javax.swing.*; 
 import   java.awt.*; 
 import   java.awt.event.*;   
 //计算器显示结果窗体 
 class   Result   extends   JPanel 
 { 
 	JTextField   text   =   new   JTextField(); 
 	Result() 
 	{ 
 		text.setHorizontalAlignment(SwingConstants.RIGHT); 
 		setLayout(new   BorderLayout());      //设定布局管理器边框布局 
 		add(text,BorderLayout.CENTER);      //TEXT   放置在窗体中间 
 	} 
 }   
 //计算器按钮定义面板 
 class   Number_Key   extends   JPanel 
 { 
 	JButton   one      =new   JButton( "1 "); 
 	JButton   two      =new   JButton( "2 "); 
 	JButton   plus   =new   JButton( "+ "); 
 	JButton   equal=new   JButton( "= ");  	 
 	Number_Key()       
 	{ 
 		setLayout(new   GridLayout(1,2,10,10));      //定义布局管理器为网格布局 
 		add(one); 
 		add(two); 
 		add(plus); 
 		add(equal); 
 	} 
 }   
 public   class   Calculator   extends   JFrame   implements   ActionListener 
 { 
 	Result   result   =new   Result();      //   定义text   面板 
 	Number_Key   number_key=new   Number_Key();   //定义按钮面板 
 	boolean   com=false;   //当单击按钮+,-,*,/时,com=true 
 	int   i=0;      //当i=0时说明是第一次输入,字符串sum不会累加 
 	String   sum= " ";      //存放text   内容 
 	double   total=0;   //存放单击按钮+之前的数值 
       int   symbol=0;      //      +,-,*,/   的代号分别为1,2,3,4 
       Calculator() 
       { 
       	super( "Calculator ");   //设定标题 
       	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   //关闭窗体是推出程序 
       	JPanel   pane=new   JPanel();      //定义面板 
       	pane.setLayout(new   BorderLayout()); 
       	pane.add(result,BorderLayout.NORTH); 
       	pane.add(number_key,BorderLayout.SOUTH); 
       	number_key.one.addActionListener(this);         //对1按钮添加监听事件 
       	number_key.two.addActionListener(this);         //对2按钮添加监听事件 
       	number_key.equal.addActionListener(this);   //对=按钮添加监听事件 
       	number_key.plus.addActionListener(this);      //对+按钮添加监听事件 
       	setContentPane(pane); 
       	pack();   //初始化窗口大小为正好盛放所有按钮 
       }         
       //各个按钮触发事件 
       public   void   actionPerformed(ActionEvent   e) 
       { 
       	//////   按下1是响应 
       	if(e.getSource()==number_key.one) 
       	{ 
       		if(com||0==i) 
       		{ 
       			result.text.setText( "1 "); 
       			com=false; 
       			i=1; 
       		} 
       		else 
       		{ 
       			sum=result.text.getText(); 
       			result.text.setText(sum+ "1 "); 
       		} 
       	}        	 
       	else   if(e.getSource()==number_key.two) 
       	{ 
       		if(com||0==i) 
       		{ 
       			result.text.setText( "2 "); 
       			com=false; 
       			i=1;