KeyPressed em um JLabel [RESOLVIDO]

Olá.

O título do tópico não esclarece muito bem qual é a minha dúvida, então vou tentar explicar melhor. Antes de tudo, gostaria de ressaltar que usei o sistema de busca do fórum (e muitos outros) antes de criar o tópico, mas pelo fato de não ser uma dúvida muito específica, a lista de tópicos encontrados ficou muita extensa e, portanto, não consegui encontrar uma solução para o meu problema. Problema que, a princípio, parece bem simples: como reconhecer que uma tecla do teclado foi pressionada sem precisar usar um componente que receba o valor dessa tecla (como um JTextField ou JTextArea). Por algum motivo todos os tutoriais, tópicos, posts, etc, que eu achei sobre o assunto relacionam o evento KeyPressed a um desses 2 componentes. Mas no meu caso, eu não pretendo usar nenhum deles. Digamos que eu tenha um JFrame com um JLabel dentro e que, quando uma tecla do teclado for pressionada, a propriedade Text desse JLabel receba o valor da tecla. Como proceder? Deu para entender a minha dúvida?

Espero que possam me ajudar.

Obrigado,
Lucas

Consegui resolver o meu problema, portanto não precisam mais me ajudar. Desculpem-me por tornar o tópico inútil.

Se resolveu, posta a solução aí para que outros que estiverem com a mesma dúvida e estiverem pesquisando por aqui achem a sua solução!
Também posta no título do tópico como [RESOLVIDO]

A solução foi criar uma classe extendendo KeyAdapter para monitorar o teclado.

[code]/**

  • KeyMonitor class

  • @author Lucas Ramos
    */
    class KeyMonitor extends KeyAdapter {
    private JPanel panel;

    /**

    • Class constructor
    • @param panel the intended panel
      */
      KeyMonitor(JPanel panel) {
      this.panel = panel;
      }

    /**

    • Method to detect the pressed key
    • @param event the key event
      */
      public void keyPressed(KeyEvent evt) {
      //Aqui executa o código desejado, como por exemplo:
      //panel.getLabel().setText("" + evt.getKeyChar());
      }
      }[/code]

Dessa forma, temos:

JPanel panel1 = new JPanel(); KeyMonitor monitor = new KeyMonitor(panel1); panel1.setFocusable(true); panel1.addKeyListener(monitor);

Lembrando que o JPanel em questão deve sempre requisitar o foco na janela:

panel1.requestFocusInWindow();

Espero que isso possa ser útil.

Valeu!