KeyBindings未在JComponent中触发

时间:2017-02-24 22:37:21

标签: java key-bindings

我试图制作一个绘画应用程序,最近我添加了撤消功能。当我用JButton测试它时,undo命令工作正常。但是,当我尝试使用CTRL + Z触发撤消功能时,没有任何反应。我也尝试过使用KeyListeners,但是没有调用密钥处理程序事件。

public class DrawPad extends JComponent{

    public DrawPad(){
        setDoubleBuffered(false);   //Should the program use a buffer to paint?
        setFocusable(true);         //Allow the JComponent to be focusable
        requestFocusInWindow();     //Ask to be focused

        //KeyEvent.VK_Z fails as well
        getInputMap().put(KeyStroke.getKeyStroke("control Z"), "undo");
        getActionMap().put("undo", new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("test");
                undo();
            }
        });
    }

删除了不相关的代码,包括撤消功能和组件的图形方面。

0 个答案:

没有答案