Как я могу игнорировать любые KeyListeners, которые могли быть добавлены клиентскими программами при соблюдении определенных условий? - PullRequest
1 голос
/ 15 сентября 2010

Мне не повезло с вебом, насколько это возможно, ближе всего я прочитал о EventQueue, но я не могу найти способ удалить событие с помощьюпо умолчанию.

Я перегрузил JTextField, чтобы он отображал оставшиеся символы в «угаданном» слове (часть компонента автозаполнения) и когда нажата «Enter», когда JTextFieldвсе еще "угадывая" слово, которое я хочу, чтобы оно заполнило оставшуюся часть слова (this.setText(this.currentGuess);) и игнорировало любые другие KeyListeners, которые могли быть добавлены к компоненту в клиентской программе.

Кактест, в конструктор я добавляю два KeyListeners, и пока ничего из того, что я сделал, не смогло предотвратить запуск второго.

1 Ответ

1 голос
/ 15 сентября 2010

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

Добавление: Также рассмотрите альтернативные реализации, такие как обсуждаемая здесь .

...