В Java, как сделать ярлыки, похожие на Emacs? - PullRequest
3 голосов
/ 17 июня 2011

Я хочу знать, как добавить ярлыки, похожие на Emacs, в моем Java-приложении.Например, Cx Cf и Cx b .

Спасибо.

Ответы [ 2 ]

0 голосов
/ 17 июня 2011

Насколько я знаю, EMACS - редактор. Если вы хотите изменить команду KeyStrokes для редактирования текстовых компонентов Swing, вам необходимо использовать привязки клавиш. Вы можете использовать существующие текстовые действия, но просто привязать их к различным сочетаниям клавиш. См. Привязки клавиш для получения списка всех привязок по умолчанию и некоторых примеров того, как выполнить повторную привязку и выполнить действие.

0 голосов
/ 17 июня 2011

Java предоставляет средства для идентификации ключей-модификаторов.Под клавишами-модификаторами я подразумеваю

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

Эти acan могут быть соединены с другими обычными кнопками нажатия клавиш на клавиатуре, чтобы определить, была ли нажата комбинация.

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


   });
...