Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Регистрация комбинаций клавиш. / 4 сообщений из 4, страница 1 из 1
17.06.2013, 08:46:04
    #38299347
TimRX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация комбинаций клавиш.
Как отследить комбинацию нажатия клавиш к примеру Alt + S.

По отдельности проблем нет.

Код: java
1.
2.
3.
4.
5.
 @Override
   public void nativeKeyPressed(NativeKeyEvent e) { 
      if (e.getKeyCode() == KeyEvent.VK_S)
          System.out.print(e.getKeyCode());
   }
...
Рейтинг: 0 / 0
17.06.2013, 10:03:41
    #38299428
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация комбинаций клавиш.
e.getModifiers(), e.getModifiersText()
...
Рейтинг: 0 / 0
25.06.2013, 09:27:59
    #38308997
TimRX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация комбинаций клавиш.
Blazkowicze.getModifiers(), e.getModifiersText()

Сделал так :
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
   @Override
   public void nativeKeyPressed(NativeKeyEvent e) { 

        if ((e.getKeyCode() == KeyEvent.VK_S ) && (e.getModifiers() == 8 ))
             if (this.isVisible())
              this.setVisible(false);
             else
              this.setVisible(true);
   }



По нажатию Alt+S форма открывает , но иногда она открывается и просто по S. Не могу понять почему.
...
Рейтинг: 0 / 0
25.06.2013, 09:57:00
    #38309027
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регистрация комбинаций клавиш.
TimRXСделал так :

В лучших страдициях индусского кода.

TimRX
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
   @Override
   public void nativeKeyPressed(NativeKeyEvent e) { 

        if ((e.getKeyCode() == KeyEvent.VK_S ) && (e.getModifiers() == 8 ))
             if (this.isVisible())
              this.setVisible(false);
             else
              this.setVisible(true);
   }



Почему 8? Откуда 8? Используйте нормальные константы. И битовые маски
Пример:
http://docs.oracle.com/javase/7/docs/api/java/awt/event/InputEvent.html#getModifiersEx()
Поставьте везде фигурные скобки в if блоках. Избавите себя от дальнейших неожиданных багов.

Ну, и это, конечно классика.
Код: java
1.
2.
3.
4.
5.
if(b){
  return false;
}else{
  return true; 
}


http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html
Код: java
1.
this.setVisible(!this.isVisible());
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Регистрация комбинаций клавиш. / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]