在Java中,如何创建类似于Emacs的快捷方式?

在Java中,如何创建类似于Emacs的快捷方式?,java,keyboard-shortcuts,shortcut,Java,Keyboard Shortcuts,Shortcut,我想知道如何在Java应用程序中添加类似于Emacs的快捷方式。例如C-xc-f和C-xb 谢谢。Java提供了一种识别修改键的方法。 我指的是修改键 Alt--e.isAltDown() Ctrl--e.isControlDown() Shift--e.IsShift Down() 这些ACA可以与键盘上的其他普通按键配对,以确定是否按下了组合键 if( (e.isControlDown() && e.getKeyCode() == KeyEvent.VK_X) ) { }

我想知道如何在Java应用程序中添加类似于Emacs的快捷方式。例如C-xc-f和C-xb


谢谢。

Java提供了一种识别修改键的方法。 我指的是修改键

  • Alt--e.isAltDown()
  • Ctrl--e.isControlDown()
  • Shift--e.IsShift Down()
  • 这些ACA可以与键盘上的其他普通按键配对,以确定是否按下了组合键

    if( (e.isControlDown() && e.getKeyCode() == KeyEvent.VK_X) )
    {
    
    }
    
    e、 getModifiers()可用于标识修改器以及单击的鼠标按钮。这将返回位掩码

    请参见此处。


    我会用它来表示Ctrl。这是过度简化的代码,但您会有一个想法

       JTextField sampleTxtFld= new JTextField();
    
       sampleTxtFld.addKeyListener(new KeyAdapter() {
    
    
              public void keyPressed(KeyEvent e) 
             {
                  if((e.isControlDown() && e.getKeyCode() == KeyEvent.VK_X)
                  {
                        //identifies whether Ctrl + X has been pressed
                        // do some action here
                  }
             }
    
            public void keyReleased(KeyEvent e) 
            {
                  //some key released code here
            }
             public void keyTyped(KeyEvent e) {
             }
    
    
       });
    

    据我所知,EMACS是一名编辑。如果要更改Swing text组件上编辑命令的击键,则需要使用键绑定。您可以使用现有的文本操作,但只需将它们绑定到不同的击键。有关所有默认绑定的列表,请参阅如何重新绑定和操作的示例。

    需要在按键后使用状态引擎,此问题中没有真正的“Java”…您的Java应用程序在做什么?您是在谈论varargs还是如何监听按键?Emac的快捷方式可以通过配置进行更改。您可能对在菜单项中添加助记符和加速键感兴趣,这将允许您使用按键导航菜单。@Atrys我想他是在尝试为正在创建的Java应用程序添加快捷键。他并没有试图改变Emacs本身的捷径。我的意思是,模仿Emacs的捷径系统的所有可配置荣耀(或血腥?)将是一项相当艰巨的任务