Проблема KeyListener

В моем приложении я использую jpanel, в котором я хочу добавить прослушиватель ключей. Я сделал это. Но это не работает.

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

Вот мой код для обновления панели

RenderedImage image = ImageIO.read(new ByteArrayInputStream((byte[]) get()));
        Graphics graphics = remote.rdpanel.getGraphics();
        if (graphics != null) {
            Image readyImage = new ImageIcon(UtilityFunctions.convertRenderedImage(image)).getImage();
            graphics.drawImage(readyImage, 0, 0, remote.rdpanel.getWidth(), remote.rdpanel.getHeight(), null);
        }

person rgksugan    schedule 14.05.2010    source источник


Ответы (1)


Есть ли у JPanel фокус клавиатуры?

Я предлагаю вам использовать InputMap и WHEN_IN_FOCUSED_WINDOW или что-то подобное. Выдержка из Как использовать привязки клавиш:

Выполняется поиск входных карт WHEN_IN_FOCUSED_WINDOW всех включенных компонентов в сфокусированном окне. Потому что порядок поиска компонентов непредсказуем

Это сработало очень надежно для меня. Взгляните на мой другой пост для получения дополнительной информации и реальных примеров кода:

или это руководство: Swing: понимание карт ввода/действия

Связанный вопрос:

person aioobe    schedule 14.05.2010