在Java中,如何制作类似Emacs的快捷方式?

发布于 2024-11-16 01:49:34 字数 95 浏览 4 评论 0原文

我想知道如何在我的 Java 应用程序中添加类似于 Emacs 的快捷方式。例如 Cx CfCx b

谢谢。

I want to know how to add shortcuts similar to Emacs's in my Java application. For example C-x C-f and C-x b.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

娇柔作态 2024-11-23 01:49:34

Java 提供了一种识别修饰符键的方法。
我所说的修饰键是指

  1. Alt -- e.isAltDown();
  2. Ctrl -- e.isControlDown();
  3. Shift -- e.isShiftDown()

这些可以与键盘上的其他普通按键配对,以识别是否已按下组合。

if( (e.isControlDown() && e.getKeyCode() == KeyEvent.VK_X) )
{

}

e.getModifiers() 可用于识别修饰符以及单击的鼠标按钮。这将返回位掩码。

请参见此处。
http://www.leepoint.net /notes-java/GUI-lowlevel/keyboard/keyboard.html

我会像这样使用 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) {
         }


   });

Java provides a means to identify Modifier keys.
By Modifier keys I mean

  1. Alt -- e.isAltDown();
  2. Ctrl -- e.isControlDown();
  3. Shift -- e.isShiftDown()

These acan be paired with other normal key press buttons from your keyboard to identify whether a combination has been pressed.

if( (e.isControlDown() && e.getKeyCode() == KeyEvent.VK_X) )
{

}

e.getModifiers() can be used to identify the modifier as well as the mouse button clicked. This returns bit mask.

See here.
http://www.leepoint.net/notes-java/GUI-lowlevel/keyboard/keyboard.html

I would use it something like this for Ctrl. This is overly simplified code, but you will get an idea.

   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) {
         }


   });
戴着白色围巾的女孩 2024-11-23 01:49:34

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

As far as I know EMACS is an editor. If you want to change the KeyStrokes for editing command on Swing text components then you need to use Key Bindings. You can use the existing text Actions but just bind them to different KeyStrokes. See Key Bindings for a list of all the default bindings an some example of how to rebind and Action.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文