2010-09-14 1 views
1

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

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

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

+2

О, у вас есть соответствующий код? Ну, почему ты не включил его !!!!! –

+0

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

ответ

1

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

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

+0

Я думал, что я где-то видел, что это не очень хороший способ сделать это, конечно, я хотел бы добавить их обратно, когда я закончил с тем, что мне нужно сделать в противном случае, если бы клиентская программа была добавлена, будет потеряна? –

+0

@izuriel: Это не идеально, и вы хотите документировать поведение. Я бы посмотрел на альтернативы; Я привел недавнюю статью выше. – trashgod

+0

Большое спасибо за информацию! –

Смежные вопросы