KeyListener nie działa

0

Witam moja klasa wygląda następująco

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;

import javax.swing.JPanel;

//@SuppressWarnings("serial")
public class Gra extends JPanel implements KeyListener{


	public Gra(){
		addKeyListener(this);
		setFocusable(true);
		requestFocus();
		repaint();
	}
	public  void rozgrywka(Graphics g) {
		Graphics2D g2d = (Graphics2D) g;
		setFocusable(true);
		requestFocus();
		znaczki();
		BrakMiejsca(g2d);
		sprawdzanieTrafien();	
		//opoznienie();
		odswiezP(g2d);
		repaint();
	}
	@Override
	public void keyPressed(KeyEvent arg0) {
		// TODO Auto-generated method stub
		System.err.println("sdfafs");
		char c = arg0.getKeyChar();
		System.err.println(c);
	}

	@Override
	public void keyReleased(KeyEvent arg0) {
		// TODO Auto-generated method stub
		char c = arg0.getKeyChar();
		System.err.println(c);
	}

	@Override
	public void keyTyped(KeyEvent arg0) {
		// TODO Auto-generated method stub
		char c = arg0.getKeyChar();
		System.err.println(c);
		
	}

}

Klasa gra jest wywoływana w klasie

public class Menu extends JPanel implements MouseListener, MouseMotionListener, KeyListener{

w ten sposób gra.rozgrywka(g);

 Niestety KeyListener nie działa, proszę o pomoc w odnalezieniu przyczyny z której powodu aplikacja nie reaguje na wciskanie klawiszy.
0

Błąd masz w tej części kodu, której nie pokazałeś. Kod klasy Gra jest poprawny, po umieszczeniu obiektu typu Gra w oknie (JFrame), listener działa. (Czy Ty obiekt gra wyświetlasz? Jaki on ma rozmiar?)

0

A ja błąd widze już tutaj:

public class Gra extends JPanel implements KeyListener

i tymbardziej tu:

public class Menu extends JPanel implements MouseListener, MouseMotionListener, KeyListener

Lekcje na dziś:
http://en.wikipedia.org/wiki/Single_responsibility_principle
http://en.wikipedia.org/wiki/God_object

0

Nie tylko wywołuję pierwszą metoda która dalej ciągnie grę skacząc po innych metodach z klasy Gra. Prawdopodobnie problem polega na tym, że tracę focus a bardzo trudno jest określić którym miejscu.

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