Java Swing 键盘监听事件

java swing 键盘监听按下P键后只让C键生效,其他键无效

public class main extends JFrame implements KeyListener {
public main() {
getContentPane().setLayout(null);
setVisible(true);
this.addKeyListener(this);
}

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

private boolean T = false;// 当这个变量为true时表示p被按下

@Override
public void keyTyped(KeyEvent e) {
}

// 按下了某个键
public void keyPressed(KeyEvent e) {
    // 当p键被按下时
    if (T) {
        if(e.getKeyCode()==KeyEvent.VK_C){
            System.out.println("你按下了C键");
        }
    } else {// 当P键未被按下时
        if (e.getKeyCode() == KeyEvent.VK_P) {
            System.out.println("P键被按下");
            T = true;
        }else{
            System.out.println("你按下了"+ e.getKeyChar()+"键");
        }
    }

}
// 松开了
public void keyReleased(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.VK_P) {
        System.out.println("P键被松开");
        T = false;
    }
}

}