import java.awt.*;
import java.awt.event.*;public class T4 extends Frame implements KeyListener
{
    Label ll;
    public T4()
    {
       super("KeyEvent事件处理测试");
       this.setBounds(300,300,500,300);
       ll=new Label("显示按键");
       this.addKeyListener(this);
       this.add(ll);
       this.addWindowListener(new WindowAdapter(){
           public void windowClosing(WindowEvent e)
           {
              System.exit(0);
           }
       });
       this.setVisible(true);
    }
    public static void main(String[] args) {
        new T4();
    }    public void keyTyped(KeyEvent e) {
    }    public void keyPressed(KeyEvent e) {
        //String s=new String();
        ll.setText(String.valueOf(e.getKeyChar()));    }    public void keyReleased(KeyEvent e) {
    }
}this.addKeyListener(this);//我想问一下为什么是窗口要注册监听器,为什么不是labal ll注册监听器
希望各位大侠能够指教一下,谢谢!!

解决方案 »

  1.   

    一般情况下 Lable 是不添加 事件监听器的 把监听器添加在 窗口上才能对其上的 组件 进行监听我理解的这样也是比较合理的 至于具体点的原因 我也是菜鸟 等待高手来解释呵呵 共同学习!
      

  2.   

    监听器就是监测状态的。当窗口的状态发生改变时,窗口的显示就会变化。
    "Frame implements KeyListener",Frame实现了KeyListener接口,而Label尚未实现这个接口。
      

  3.   

    T4这个类实现这个接口,是因为我想让它成为一个监听器,Label是一般不添加监听器,但是Lable有这个方法的,所以应该不会有问题啊!!但是我到现在还不懂啊!希望高手继续指教一下。