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, botów: 0