本帖最后由 wu862431048 于 2013-06-16 22:00:35 编辑

解决方案 »

  1.   

    #3说的对。
    public class test5 extends JFrame { public test5() {
    JTextField field = new JTextField(10);
    field.addKeyListener(new KeyAdapter() {
    //添加事件监听
    public void keyTyped(KeyEvent e)
    {
    // System.out.println(e.getKeyCode());
    if(!(e.getKeyChar()>=KeyEvent.VK_0 && e.getKeyChar()<=KeyEvent.VK_9))
    {

    e.consume();//?????怎么没用效啊
    }
    }
    });
    this.add(field);
    this.setLayout(new FlowLayout());
    this.setBounds(100, 200, 300, 100);
    this.setVisible(true);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    } public static void main(String[] args)
    {
    new test5();
    }}
    awt的;
    public class test5 extends Frame {
    public test5() {
    TextField field = new TextField(10);
    field.addKeyListener(new KeyAdapter() {
    //添加事件监听
    public void keyTyped(KeyEvent e)
    {
    System.out.println(e.getKeyCode());
    if(!(e.getKeyChar()>=KeyEvent.VK_0 && e.getKeyChar()<=KeyEvent.VK_9))
    {
    e.consume();
    }
    }
    });
    this.add(field);
    this.setLayout(new FlowLayout());
    this.setBounds(100, 200, 300, 100);
    this.add(new Label("AWT 不能输入字符"));
    this.setVisible(true);
    this.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e)
    {
    System.exit(0);
    }
    });
    } public static void main(String[] args)
    {
    new test5();
    }}
      

  2.   

    @Override public void keyTyped(KeyEvent e)
                {
                    System.out.println(e.getKeyCode());
                    if(Character.isDigit(e.getKeyChar()))
                    {
                        e.consume();
                    }
                }
      

  3.   

    谁能详细解释一下 keyTeped 是个啥意思?帮助文档看不到
      

  4.   

    keyPressed 按下
    keyReleased 释放
    keyTyped 按下+释放