У меня есть пользовательский компонент подкласса от JPanel с помощью обработчика клавиатуры. Мое основное приложение вставляет это внутри другого JPanel. Теперь я хочу, чтобы родительский JPanel также реагировал на нажатия клавиш, так как есть некоторые действия, которые необходимо предпринять только тогда, когда компонент сфокусирован, но которые применяются к приложению в целом, а не к этому компоненту (например, когда я нажимаю Ctrl- R Я хочу, чтобы отдельное окно состояния обновлялось, но только тогда, когда у моего компонента есть фокус клавиатуры.)Цепные манипуляторы клавиатуры в Swing
Прямо сейчас я делаю это, явно передавая свой конструктор обработчику, который вызывает его KeyListener, когда это делается, но это вероятно, будет более чистым, чтобы использовать собственный способ качания делать вещи, если он есть. Есть ли поддержка для такого типа обработчиков, соединяющих иерархию контейнеров? Я посмотрел на KeyboardFocusManager и KeyEventHandler, но они кажутся глобальными по объему, тогда как я хочу, чтобы что-то было ограничено одним контейнером, который запускается только тогда, когда один из его детей имеет фокус клавиатуры.
спасибо, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT выглядит точно, что мне нужно –