KeyListener i JPanel

Dyskusje na temat Javy.
Piort
Nowicjusz
Posty: 3
Dołączył(a): niedziela, 21 listopada 2010, 01:18

KeyListener i JPanel

Post przez Piort »

Witam
Proszę o wytłumaczenie dlaczego jeśli podłączam KeyListenera pod jakiś button to nie mam problemów. Ale jeśli próbuję to samo zrobić pod klasę która jest rozszerzona o JPanel to nie działa mi to jak trzeba.

Code: Zaznacz cały

class JakasKlasa extends JPanel {

   JakasKlasa() {
       // tu instrukcje 
       this.addKeyListener(new KeyListener()
        // tu sa zaimplementowane metody odpowiednie np:
            public void keyPressed(KeyEvent e) {
                if (e.getKeyCode() == KeyEvent.VK_RIGHT){
                    System.out.println("Prawo");
                } 
                if (e.getKeyCode() == KeyEvent.VK_LEFT){
                    System.out.println("Lewo");
                }
                if (e.getKeyCode() == KeyEvent.VK_DOWN){
                    System.out.println("Dół");
                }
                if (e.getKeyCode() == KeyEvent.VK_UP){
                    System.out.println("Góra");
                }
            })
   }
}
po naciśnięciu strzałek nie wykonują się żadne instrukcje System.out.println("..");

Nie rozumiem dlaczego niby nie zgłasza zadnego błedu i nie dziala. Może z JPanel trzeba zrobic to inaczej?
Pozdrawiam i dziękuję za pomoc.
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: KeyListener i JPanel

Post przez Morfidon »

Aby element mógł odbierać jakieś zdarzenia, to musi być "aktywny", aktywność jest oznaczana wizualnie tak, że element jest np. "podświetlony". Przypatrz się na funkcje, które żądają focusa (skupienie). requestFocus, requestDefaultFocus etc.
Post Reply