KeyPressed和KeyTyped

1,为什么在重写KeyPressed方法里对backspace键consume会生效,

在KeyTyped方法里对backspace键consume没用,当按下backspace键,还是会删除

2,

//给文本框添加事件
        tf.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
                //如果你取得的字符不是数字字符,就取消事件
                //先取得字符,判断字符,取消事件
                char ch=e.getKeyChar();
                System.out.println(ch);
                if(!(ch>='0'&&ch<='9')) {
                    e.consume();//不会产生事件
                }
            }
        });

3,如果是上面这种,当按backspace键,没有反应,没有事件响应

4,若是下面这种,当按backspace键,会有事件响应,会删除内容

//给文本框添加事件
        tf.addKeyListener(new KeyAdapter() {
            @Override
            public void keyTyped(KeyEvent e) {
                //如果你取得的字符不是数字字符,就取消事件
                //先取得字符,判断字符,取消事件
                char ch=e.getKeyChar();
                System.out.println(ch);
                if(!(ch>='0'&&ch<='9')) {
                    e.consume();//不会产生事件
                }
            }
        });