Ключевое событие не фиксируется в апплете ПОСЛЕ того, как я нажал одну из кнопок графического интерфейса - PullRequest
0 голосов
/ 14 февраля 2012

У меня есть музыкальный апплет, который использует клавиатуру, мышь и кнопки GUI. Когда апплет загружен впервые, события клавиатуры работают нормально, как и события мыши. Однако после того, как я нажал одну из кнопок GUI, события мыши все еще работают, а события клавиатуры - нет, и не начинают работать снова, пока я не обновлю апплет.

После поиска в сети я нашел несколько возможных решений, я попытался добавить button.setFocusable(true); и button.addKeyListener(this); ко всем моим кнопкам и панелям. Никакого эффекта вообще. Я видел рекомендации по преобразованию в JApplet и использованию привязки ключей, но наверняка должен быть более простой способ? Извините за отсутствие кода, я работаю над этим проектом, так как я был новичком, и это немного беспорядок, и очень долго!

Любая помощь высоко ценится!

Ответы [ 2 ]

2 голосов
/ 14 февраля 2012
button.setFocusable(true); and button.addKeyListener(this); to all my buttons

Для JButton используйте Swing Action или реализации по умолчанию для ActionListener , а не KeyBindings (для контейнера на основе Swing иJComponents), ни с использованием KeyListener

РЕДАКТИРОВАНИЕ

, если нет действительно важных причин, не используйте доисторические AWT Applet, используйте JApplet, может бытьдостаточно будет просто JFrame

1 голос
/ 14 февраля 2012

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

Если ваш проект уже в беспорядке, то первое и самое важное, что вы должны сделать, это заказать его.Если для вас это беспорядок, значит, вы этого не понимаете.Так что это просто не может работать.Это ваша первая и главная ошибка.

...