新手请教如何实现这个计算器的键盘响应,急啊!
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import javax.swing.*;
public class Counter extends Frame implements KeyListener
{
GridLayout gl1,gl2,gl3; //声明三个面板的布局
Panel p0,p1,p2,p3;
Result result =new Result(); // 定义text 面板
JTextField tf1;
TextField tf2;
Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26;
StringBuffer str; //显示屏所显示的字符串
String s;
double x=0.0,y=0.0;//resule=0.0; //x和y都是运算数,result为运算结果
int z; //Z表示单击了的运算符,0表示 "+ ",1表示 "- ",2表示 "* ",3表示 "/ "
static double m; //记忆的数字
public void keyPressed(KeyEvent e){} //键盘响应
public void keyReleased(KeyEvent e){}
public void keyTyped(KeyEvent e)
{
char c=e.getKeyChar();
switch(c)
{
case '0 ' : ;
case '1 ' : ;
case '2 ' : ;
case '3 ' : ;
case '4 ' : ;
case '5 ' : ;
case '6 ' : ;
case '7 ' : ;
case '8 ' : ;
case '9 ' :{
if(tf1.getText().trim().equals( "0 "))//如果显示屏显示的为零不做操作
{
tf1.setText( " ");
}
y=Double.parseDouble(tf1.getText().trim());
};;break;
case '+ ' :{
//y=Double.parseDouble(tf1.getText().trim());
//tf1.setText(str.delete(str.length()-1,str.length()).toString());
tf1.setText( " ");
str.setLength(0); //清空缓冲区以便接收新的另一个运算数
y=0d;
z=0;
tf1.setText(str.delete(str.length()-1,str.length()).toString());
} break;
case '- ' :{
//x=Double.parseDouble(tf1.getText().trim());
//tf1.setText(str.delete(str.length()-1,str.length()).toString());
str.setLength(0);
y=0d;
z=1;
} ; break;
case '* ' :{
//x=Double.parseDouble(tf1.getText().trim());
// tf1.setText(str.delete(str.length()-1,str.length()).toString());
str.setLength(0);
y=0d;
z=2;
} ;break;
case '/ ' :{