Problem - KeyListener

0

Mógłby ktoś powiedzieć, dlaczego ten kod nie działa?
Wyświetla się ramka, ale nie reaguje na klawisze.

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JPanel;

public class GamePanel extends JPanel implements KeyListener{

    public GamePanel()
    {
        addKeyListener(this);
    }

    @Override
    public void keyReleased(KeyEvent e)
    {
        System.out.println("test");
    }   

    @Override
    public void keyPressed(KeyEvent e){}
    @Override
    public void keyTyped(KeyEvent e){}

}

0
  1. NIE robimy klas a'la człowiek orkiestra! Skoro klasa jest panelem to NIE jest KeyListenerem!
  2. Jesteś pewny że ten panel ma fokusa kiedy to testujesz?
0

Rzeczywiście, nie było fokusa....
Ale dlaczego nie robimy Panela, który jest KeyListnerem?
Chodzi o coś więcej niż zasadę?

0

Tak. Nazywa się to zasadą jednej odpowiedzialności. Chodzi o to żeby klasy były nastawione na realizacją jednej konkretnej funkcjonalności. Dzięki temu są małe, łatwo się je modyfikuje i łatwo nimi zarządza.

0

Wielkie dzięki za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0