Brandon Buck
Brandon Buck

Reputation: 7181

How can I ignore any KeyListeners that may have been added by client programs when certain conditions are met?

I haven't had any luck with the web as far as this is concerned, the closest I've come is to read up on the EventQueue, but I can't seem to find a way remove an event by default.

I've overloaded a JTextField so that it displays the remaining characters in a "guessed" word (part of an auto complete component) and when "Enter" is pressed while the JTextField is still "guessing" a word I want it to fill in the remaining portion of the word (this.setText(this.currentGuess);) and ignore any other KeyListeners that may have been added to the component in a client program.

As a test, in the constructor I'm adding two KeyListeners and so far nothing I've done has managed to prevent the second from firing.

Upvotes: 1

Views: 218

Answers (1)

trashgod
trashgod

Reputation: 205805

You should be able to use getKeyListeners() to see who's listening and remove all but your desired listener.

Addendum: Also consider alternate implementations, such as the one discussed here.

Upvotes: 1

Related Questions