首页 > 解决方案 > 在 switch 语句中使用 ctrl-z 撤消的非弃用方法

问题描述

我需要在 switch 中使用 ctrl-z 使我的撤消案例工作,但我尝试过的所有方法都已弃用或不起作用

switch (event.getActionCommand()) {
       case "Undo":
            try {
              // undo method
            } catch(Exception e){
              // exception msg
            }
            break;

            case "Redo":
              try{
                // redo method
            } catch(Exception e){
               // exception msg
            }
            break;
 }

目前,这些可以通过 jmenu 项目访问,但我希望通过 control z 也可以使用 under 方法,撤消和重做的内容在 jframe 内。

不要误会我的意思,它们是否通过对应的 jmenu 正常运行,我只是无法让它们通过按键 (ctrl+z) 工作

标签: javaswingswitch-statementawt

解决方案


我只是无法让他们通过按键 (ctrl+z) 工作

您需要向菜单项添加“加速器”。

undoMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z, ActionEvent.CTRL_MASK));

阅读 Swing 教程中有关启用键盘操作的部分以获取更多信息。


推荐阅读