现在面板上用setFocusable(true)把焦点定位到面板上
载实现KeyListener借口
实现下面三种方法
keyPressed(),keyRelease(),keyTyped()
用KeyEvent类中的getKeyChar()方法捕获输入的字符'd'

解决方案 »

  1.   

    component.addKeyListener();
    我感觉还是这个方法好一点
      

  2.   

    component.addKeyListener(),这个比较好
      

  3.   

    你们的方法我都试过了,怎么不行?class DemoPanel extends JPanel implements KeyListener
    {
    public DemoPanel()
    {
    setFocusable(true);
    addKeyListener(this);
    }这样和你们说的一样吧,可还是不行
      

  4.   

    class DemoPanel extends JPanel 
    {
    public DemoPanel()
    {     setFocusable(true);
    }
             public void addKeyListener(KeyListener l) {
              //在此实现它的接口
             }
    }
      

  5.   

    我给你一个方法吧。绝对可以jPane1.getToolkit().getDefaultToolkit().addAWTEventListener(new AWTEventListener(){
            public void eventDispatched(AWTEvent e) {
              if (e instanceof KeyEvent) {
                KeyEvent key = (KeyEvent) e;
                System.err.println(key.getComponent());
                System.err.println(key.getSource());
                System.err.println(key.getKeyChar());
              }
            }
          }, AWTEvent.KEY_EVENT_MASK);
    呵呵,大家可以试试上面的方法,可以监听一个JPanel中所有的KEY事件,如果想监听其它事件,如Focus,只要将AWTEvent.KEY_EVENT_MASK 改为 FOCUS_EVENT_MASK有兴趣的朋友可以进来讨论一个它的原理。