textField.addKeyListener(this) ,只能监听文本框,若鼠标点击到程序的其他地方,就不能在监听
我监听JFrame没效果的JFrame.addKeyListener(this),请问怎么监听到整个程序?也就是只要程序在当前窗口,不管鼠标的光标在哪都能实现监听

解决方案 »

  1.   

    实现AWTListener, 能监听到所有 事件,
    然后你自己过滤下。有个abbot的开源项目可以参考。
      

  2.   

    详情参见java.awt.Toolkit类。
    Toolkit.getDefaultToolkit().addAWTListener(.....);
      

  3.   

    你可以尝试JFrame里每一个需要用到监听器的地方,在监听器里先把其他监听器XX.setFocused(false);,再把该监听器setFocused(true),试试!!!
      

  4.   

     ActionLisTener 看了API,不懂得如何使用,baidu 也没找到实例
      

  5.   

    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;import javax.swing.JFrame;class Test extends JFrame implements KeyListener {

    Test() {
    super("请按上下左右键,看Title");
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    this.setSize(500, 300);
    this.setVisible(true);

    this.addKeyListener(this);
    }

    public static void main(String[] args) {
    new Test();
    } @Override
    public void keyPressed(KeyEvent e) {
    // TODO Auto-generated method stub
    if(e.getKeyCode()==KeyEvent.VK_UP) {
    this.setTitle("上");
    }
    if(e.getKeyCode()==KeyEvent.VK_DOWN) {
    this.setTitle("下");
    }
    if(e.getKeyCode()==KeyEvent.VK_LEFT) {
    this.setTitle("左");
    }
    if(e.getKeyCode()==KeyEvent.VK_RIGHT) {
    this.setTitle("右");
    }
    } @Override
    public void keyReleased(KeyEvent e) {
    // TODO Auto-generated method stub

    } @Override
    public void keyTyped(KeyEvent e) {
    // TODO Auto-generated method stub

    }

    }   //结帖吧
      

  6.   

    KeyListener 不知道为什么加了文本框和一些按钮后不能全程序监听,我是希望有
    java.awt.Toolkit或ActionLisTener 的使用实例,唉
    算了,结贴吧