本帖最后由 Mosesbaby 于 2009-06-10 23:31:40 编辑

解决方案 »

  1.   


    在构造函数里有
    addKeyListener(new KeyInput());是注册了吧~~~
      

  2.   

    对按键的监听貌似加在Frame里比较好 试一下这个
    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;import javax.swing.JFrame;public class MyPaintPanel extends JFrame{//这是我写的一个类 
        
       private  String tx; 
    private class KeyInput implements KeyListener{//这是一个继承自KeyListener的私有内部子类 @Override 
    public void keyPressed(KeyEvent e) { 
    System.out.print("1");//不打印 } @Override 
    public void keyReleased(KeyEvent e) { 
    System.out.print("1");//不打印 
    // TODO Auto-generated method stub } @Override 
    public void keyTyped(KeyEvent e) { 
    tx=tx+e.getKeyChar(); 
    System.out.print("1");//不打印 
    System.out.print(tx);//不打印 


    public MyPaintPanel() {//构造函数 
    addKeyListener(new KeyInput()); 

    public static void main(String[] args) {
    new MyPaintPanel().setVisible(true);
    }
      

  3.   

    一定只能在JFrame中加KeyListener的监听器么??为什么呢?
      

  4.   

    应该是焦点的问题 要响应监听器的组件必须获得焦点 而Jpanel获得焦点就没那么容易了 
      

  5.   

    你的意思就是说所有的监听器都最好加载JFrame上面是么??
      

  6.   

    不是的 是keylistener可以都加在顶层Jframe上面
      

  7.   

    还是不是很明白你的意思,我是把所有的Mouse的事件都加在JPanel上的,为什么KeyListener要加在JFrame上面好一些呢,还有那个焦点是什么意思呀?
      

  8.   

    我按你说的方法将KeyListener加到JFrame上,可还是没有反应??>_<