如题,请大家帮我看下以下程序:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class keytest extends JFrame{

public keytest(){
mypanel f=new mypanel();
getContentPane().add(f);  
setSize(300,300);
show();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}


public static void main(String a[]){
new keytest();
}
}
 class mypanel extends JPanel{
mypanel(){
addKeyListener(new KeyAdapter(){
public void keyTyped(KeyEvent e){
char c=e.getKeyChar();
if(c=='o') System.out.print("o is pressed");
}
});
}
}

解决方案 »

  1.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*; class keytest extends JFrame{

    public keytest(){
    mypanel f=new mypanel();
    getContentPane().add(f);  
    setSize(300,300);
    show();
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }


    public static void main(String a[]){
    new keytest();
    }
    }
     class mypanel extends JPanel{
    mypanel(){
    setFocusable(true);//加了一句;
    addKeyListener(new KeyAdapter(){
    public void keyTyped(KeyEvent e){
    char c=e.getKeyChar();
    if(c=='o') System.out.print("o is pressed");
    }
    });
    }
    }
      

  2.   

    是不是在keytest构造函数里调用一下super()?
      

  3.   

    谢谢jobs002,呵呵,能不能帮我解释下
      

  4.   

    public void setFocusable(boolean focusable)将此 Component 的焦点状态设置为指定值。此值覆盖 Component 的默认焦点状态。 参数:
    focusable - 表明此 Component 是否可以获得焦点
    自己参考一下..............