Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Перхват KeyStroke. / 8 сообщений из 8, страница 1 из 1
20.08.2007, 16:20:38
    #34739182
nixon1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перхват KeyStroke.
Некоторые компоненты имют замапленную в себе комбинацию клавиш ctrl+PageUp/Down. Например JTable выполняет при етой комбинации переключение на крайний или перый столбец в текущей строке.
После чего етот Event дальше никуда не проходит.

Вопрос:Как сделать так что бы во всем моем приложении я мог перхватывать эту комбинацию клавиш и делать нужное мен действие?
...
Рейтинг: 0 / 0
20.08.2007, 16:29:47
    #34739219
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перхват KeyStroke.
Все эти комбинации лежат в ActionMap и InputMap у Swing компонент. Читай мануал по ним.
Здесь можно найти обсудления и примеры кода
...
Рейтинг: 0 / 0
20.08.2007, 16:50:07
    #34739330
nixon1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перхват KeyStroke.
Пасиба. Ето знаю - читал, пробовал.
Все предлагают решение - удалить из мапы екшн/екейтрок которые связаны с этим поведением.
Но если компонентов море - фреймы, в них тейдбы, много окон, большая вложенность...
и у каждого мапу чистить от етого ивента...
...
Рейтинг: 0 / 0
20.08.2007, 21:36:45
    #34740144
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перхват KeyStroke.
nixon1Пасиба. Ето знаю - читал, пробовал.
Все предлагают решение - удалить из мапы екшн/екейтрок которые связаны с этим поведением.
Но если компонентов море - фреймы, в них тейдбы, много окон, большая вложенность...
и у каждого мапу чистить от етого ивента...
Ну, не знаю. Вроде проитерироваться по дереву JComponent ни когда не было проблемой. Сам так делал. Ещё в Swing Hacks пример видел.
...
Рейтинг: 0 / 0
21.08.2007, 12:09:02
    #34741167
nixon1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перхват KeyStroke.
Сделал. Есть интерфесик KeyEventDispatcher, он и помог в реализации моей задачи.:)
...
Рейтинг: 0 / 0
21.08.2007, 13:05:25
    #34741404
Дуремар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перхват KeyStroke.
nixon1Сделал. Есть интерфесик KeyEventDispatcher, он и помог в реализации моей задачи.:)
А пример использования не приведёте? Без деталей - на самом верхнем уровне. Просто я смотрю - там есть некоторые тонкости по редиспатчу события.
...
Рейтинг: 0 / 0
21.08.2007, 13:32:49
    #34741543
nixon1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перхват KeyStroke.
Приведу конечно:) :
Сделал класс:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 public   class  SwitchEditorTabsKeyEventDispatcher  implements   KeyEventDispatcher
{        
	 public   boolean  dispatchKeyEvent(KeyEvent ke)
    {        				
	 if (ke.getID()==KeyEvent.KEY_PRESSED && ke.isControlDown() && ke.getKeyCode() ==   KeyEvent.VK_PAGE_DOWN )		        					        
    	{        		
              doMyWork();
    	}
    	 return  false; // Move event further.
    }
 };	

Добавляю его в главный фрейм поего приложения:
Код: plaintext
1.
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher( new  SwitchEditorTabsKeyEventDispatcher());
...
Рейтинг: 0 / 0
21.08.2007, 13:41:08
    #34741569
Дуремар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перхват KeyStroke.
Спасибо! Вы меня от массы проблем избавили! :)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Перхват KeyStroke. / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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