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