import java.awt.*;
import java.awt.event.*;
import java.applet.*;public class KeyboardTest extends Applet implements KeyListener{   public void init(){
     keyChar='A';
     addKeyListener(this);
     }
   public void paint(Graphics g){
     g.drawString("Press any key..",20,20 );
     g.drawString("Key code:"+keyCode,20,50 );
     g.drawString("Key char:"+keyChar,20,70 );
    }
   public void keyPressed(KeyEvent e){
     keyCode=e.getKeyCode();
     keyChar=' ';
     repaint();
    }
  public void keyReleased(KeyEvent e){   }
  public void keyTyped(KeyEvent e){
     keyChar=e.getKeyChar();
     repaint();
   }
   private int keyCode;
   private char keyChar;}
这个程序编译没有错误,也能运行。可是键盘不响应,没有达到我想要的效果,请高手指点,是哪里出了问题?

解决方案 »

  1.   

    给你发个import java.awt.*;
    import java.awt.event.*;public class TestKey extends Frame {
    public void lunch() {
    setBounds(200,200,400,400);
    setVisible(true);
    addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    setVisible(false);
    System.exit(-1);
    }
    });
    this.addKeyListener(new Test()); }

    class Test extends KeyAdapter {
    public void keyPressed(KeyEvent e) {
    int keycode = e.getKeyCode();
    switch(keycode) {
    case KeyEvent.VK_UP: 
    System.out.println("up");
    break;
    case KeyEvent.VK_DOWN:
    System.out.println("down");
    break;
    default:
    System.out.println("别的键");
    } }
    }

        
    public static void main(String[] args) {
    new TestKey().lunch();
     
    }
    }
      

  2.   

    你在init方法中打印看一下了 好像你的init方法就没调用
    写个main方法测试一下
      

  3.   

    是可以运行,但是达不到我想要的键盘监听,我也感觉init方法没有调用,
    “写main方法测试”是不是改成应用程序测试啊?