我自定义了一个控件(extend JComponent),现在想让我这个控件能接受键盘事件,当按下BACKSPACE键时隐藏该控件,我已经implement了KeyListener了,可是不起作用,我猜可能是没有获得焦点,于是又查了下资料,implement了FocusListener,不过现在仍不行,现在我的问题如下:
1、焦点事件什么情况下能被触发,需要实现什么借口,什么方法
2、获取键盘事件需要先获得焦点才行吗,怎么实现
3、有其他途径实现我想要的功能吗
JAVA新手,望大家给予指点,谢谢!

解决方案 »

  1.   

    可以不必直接继承JComponent,可继承一个实现了KeyListener的控件(如JPanel),初始化控件对象后给其添加相应的keyListener对象即可,如果必许直接继承JComponent,参照其他控件源码实现keyListener
      

  2.   

    public void actionListener(){
    this.addKeyListener(new KeyAdapter() {
    @Override
    public void keyPressed(KeyEvent arg0) {
    if(arg0.getID()==48){
    System.out.println("点击了1……");
    }
    }
    });
    }