KeyListener работает только иногда

Я сделал клон Pong и столкнулся с проблемой. KeyListener работает только иногда. Нет такой закономерности, которую я смог найти.

Для справки вот мой Pong.java(основной класс): http://pastebin.com/8d7BqK4x

Вот Board.java(Графика и KeyListener): http://pastebin.com/0zb526BE


person Cg2916    schedule 31.10.2011    source источник
comment
Довольно аккуратная программка у вас есть. 1+   -  person Hovercraft Full Of Eels    schedule 31.10.2011
comment
Почему вы репостите этот вопрос? Вы уже получили этот же ответ, когда задали этот вопрос вчера! stackoverflow.com/questions/7940173/   -  person camickr    schedule 31.10.2011
comment
Почему вы думаете, что ответ изменится?   -  person Hovercraft Full Of Eels    schedule 31.10.2011


Ответы (2)


Обычно вы не хотите использовать KeyListener из-за проблем с фокусом (вероятно, поэтому ваш слушатель слушает только время от времени - вероятно, ваш компонент прослушивания теряет фокус, и поэтому KeyListener теряет свою функцию.

Лучше использовать привязки клавиш, когда вам не нужно так сильно беспокоиться о проблемах с фокусом и где вы имеете дело с конструкцией более высокого уровня, той, которую Swing использует для прослушивания компонентов. Учебники «покажут вам путь».

person Hovercraft Full Of Eels    schedule 31.10.2011
comment
@ Cg2916 снова тот же результат, что и из stackoverflow. ком/вопросы/7940173/ - person mKorbel; 31.10.2011

KeyEvents генерируются только тогда, когда компонент имеет фокус.

Лучше использовать привязки клавиш, которые работают, даже когда компонент не имеет фокуса.

person camickr    schedule 31.10.2011