SWT: addFilter или addKeyListener на Composite - PullRequest
1 голос
/ 27 сентября 2011

Я хочу иметь несколько составных сочетаний клавиш.Рассматриваемые композиты находятся во вкладке-папке.У меня есть небольшая функция, которая обходит все дочерние элементы моего композита и добавляет KeyboardAdapter к каждому из них.

Проблема, с которой я сталкиваюсь, заключается в том, что при открытии одной из вкладок нажатые клавиши не регистрируются.Сначала я установил фокус на какой-то виджет на вкладке, затем он работает.Когда я переключаюсь на другую вкладку и затем обратно, фокус все еще там (например, выделение серым цветом вместо синего в таблице), но, опять же, оно не работает, пока я не щелкну где-нибудь.

Как я могу это сделать?Я думал о добавлении фильтра на мой дисплей, но я хочу, чтобы события были только в определенном соединении (и во всем этом).

Спасибо

1 Ответ

3 голосов
/ 27 октября 2011

Ключевые события доставляются компоненту, который имеет фокус клавиатуры. Композиты не получают фокус клавиатуры, обычно это один из их дочерних компонентов, который получает их, и затем они начинают получать ключевые события (в случае, если они не используются дочерними элементами). Возможно, сработает ключевой слушатель в родительской оболочке.

...