Вы можете создать свой собственный класс, реализующий KeyEventPostProcessor
, которому вы отдаете все остальные Процессоры, и позволить своему собственному классу вызывать процессоры в порядке, который вам нравится (очевидно, только добавляя свой собственный процессор к KeyboardFocusManager
.)Это, однако, позволит только возвращать одно возвращаемое значение при вызове, вместо того, чтобы каждый процессор возвращал значение.
Если это проблема, то вам, вполне возможно, придется удалить все процессоры иповторно добавьте их.В KeyboardFocusManager есть метод с именем getKeyEventPostProcessors()
, который возвращает все процессоры.Вы можете извлечь этот список, выполнить итерацию по нему и удалить процессоры, используя removeKeyEventPostProcessor()
, сначала добавить свой собственный, а затем снова выполнить итерацию по списку и добавить все предыдущие процессоры.Однако это будет довольно неэффективно.
Если вы добавляете все процессоры одновременно, но хотите изменить порядок, вы можете временно сохранить их в списке, а затем просмотреть список в обратном порядке, добавив их в KeyboardFocusManager.только когда у вас уже есть все готовые процессоры.
Кроме обходных путей, описанных выше, в Java API нет никакого способа заставить его отправлять события в обратном порядке.