Проблема KeyListener - PullRequest
       9

Проблема KeyListener

1 голос
/ 14 мая 2010

В моей заявке я использую 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);
        }

1 Ответ

3 голосов
/ 14 мая 2010

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

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

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

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

или этот учебник: Swing: Понимание карт ввода / действий

Похожие вопросы:

...