I try to programming a TextEditor. Now I can realize it by adding a button. And I want to realize  revoke by pressing Ctrl+Z. How to deal with it ?
Please give me some suggestions.
now i can realize it by
jta.addKeyListener(new KeyListener() {
    @Override
    public void keyTyped(KeyEvent e) {
        if((e.getKeyChar() == 0x1a)) {
            if(doManager.canUndo()) {
                doManager.undo();
            }
            System.out.println(1);
        }
    }
    @Override
    public void keyReleased(KeyEvent e) {
    }
    @Override
    public void keyPressed(KeyEvent e) {
    }
});
Why this can't?
jta.addKeyListener(new KeyListener() {
    @Override
    public void keyTyped(KeyEvent e) {
        if((e.getKeyCode() == KeyEvent.VK_Z) && ((e.getModifiers() & KeyEvent.CTRL_MASK) != 0)) {
            if(doManager.canUndo()) {
                doManager.undo();
            }
            System.out.println(1);
        }
    }
    @Override
    public void keyReleased(KeyEvent e) {
    }
    @Override
    public void keyPressed(KeyEvent e) {
    }
});
Why this can't?
jta.addKeyListener(new KeyListener() {
    @Override
    public void keyTyped(KeyEvent e) {
        if((e.getKeyCode() == KeyEvent.VK_Z) && (e.isControlDown() == true)) {
            if(doManager.canUndo()) {
                doManager.undo();
            }
            System.out.println(1);
        }
    }
    @Override
    public void keyReleased(KeyEvent e) {
    }
    @Override
    public void keyPressed(KeyEvent e) {
    }
});
@Felix Gerber
 
    