【问题标题】:Non-deprecated method for using ctrl-z to undo in a switch statement在 switch 语句中使用 ctrl-z 撤消的非弃用方法
【发布时间】:2019-05-22 10:02:30
【问题描述】:

我需要在 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) 工作

【问题讨论】:

    标签: java swing switch-statement awt


    【解决方案1】:

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

    你需要给菜单项添加一个“加速器”。

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

    阅读 Enabling Keyboard Operation 上的 Swing 教程部分了解更多信息。

    【讨论】:

    • 还没有遇到过加速器的事情,但是尝试了其他类似的方法。谢谢!如果在撤消后执行操作,您不知道如何防止重做吗?
    • 阅读Swing Tutorial。在Text Component Features 上有一个部分,其中包含使用撤消/重做的完整示例。
    • 只是想知道,为它做了我自己的小东西,实用,但可能会更好
    猜你喜欢
    • 2015-11-25
    • 2019-08-04
    • 2016-06-27
    • 2017-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    相关资源
    最近更新 更多