| Цитата(nornad @ 8.7.2007, 10:51) | w1nd, если не трудно, расскажи, почему такой вариант предпочтительнее. Есть подозрения, но хотелось бы услышать из уст знающего. А доку копать пока не сильно тянет.  |
Хотя бы потому, что всё уже реализовано ;) А вообще, вот:
- Не нужно иметь доступ к объектам-контейнерам компонента и другим компонентам, чтобы обработать событие на уровне окна.
- Простой и удобный способ изменения поведения компонента в зависимости от окружения.
- InputMap'ы и ActionMap'ы можно использовать повторно, компоненты могут использовать их совместно.
- От компонента всегда можно получить список обрабатываемых им клаиатурных комбинаций с описанием действий, ими вызываемых.
- Можно расширить или изменить реакцию компонента на ту или иную клавиатурную комбинацию; отключить реакцию на некоторые комбинации; напрямую вызывать зарегистрированные action'ы.
- Зарегистрированные таким образом комбинации всегда обрабатываются корректно - не нужно в обработчике проверять наличие фокуса, состояние флага enabled и т. п.
- Корректное взаимодействие с имеющимися компонентами вроде текстовых полей, кнопок по умолчанию.
|