java键盘监听事件为什么没有反应啊

import java.awt.*;
import java.awt.event.*;
public class keyEvent extends WindowAdapter implements ActionListener{
Frame frame;
Label label;
TextField text;
Button button;
public class key extends KeyAdapter{
public void keyPress(KeyEvent l){
if(l.getKeyChar()>'0'&&l.getKeyChar()<'9')
label.setText("you input a number");
else
label.setText("you input other");
}
}
public keyEvent()
{
key key1=new key();
frame=new Frame("AWT Windows");
label=new Label("Hello World");
text=new TextField("input a thing");
button=new Button("clear");
frame.add(label);
frame.add(text);
frame.add(button);
frame.setSize(200,200);
frame.setLayout(new FlowLayout());
frame.setVisible(true);
frame.addWindowListener(this);
button.addActionListener(this);
text.addKeyListener(key1);
}
public void windowClosing(WindowEvent e){
frame.dispose();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==button)
text.setText(null);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new keyEvent();
}

}
本来运行后输入数字,会显示“you input a number”
输入其他的会显示“you input other”
但是为什么我怎么输入都是hellow world

第1个回答  2010-06-03
你的public void keyPress(KeyEvent l){一行中的keyPress写错了,应该是keyPressed,修改后的代码如下:

import java.awt.*;
import java.awt.event.*;

public class keyEvent extends WindowAdapter implements ActionListener {
Frame frame;
Label label;
TextField text;
Button button;

public class key extends KeyAdapter {
public void keyPressed(KeyEvent l) {
if (l.getKeyChar() > '0' && l.getKeyChar() < '9')
label.setText("you input a number");
else
label.setText("you input other");
}
}

public keyEvent() {
key key1 = new key();
frame = new Frame("AWT Windows");
label = new Label("Hello World");
text = new TextField("input a thing");
button = new Button("clear");
frame.add(label);
frame.add(text);
frame.add(button);
frame.setSize(200, 200);
frame.setLayout(new FlowLayout());
frame.setVisible(true);
frame.addWindowListener(this);
button.addActionListener(this);
text.addKeyListener(key1);
}

public void windowClosing(WindowEvent e) {
frame.dispose();
}

public void actionPerformed(ActionEvent e) {
if (e.getSource() == button)
text.setText(null);
}

public static void main(String[] args) {
// TODO Auto-generated method stub
new keyEvent();
}

}本回答被提问者采纳
相似回答