Hallo Leute,
ich habe den Fehler noch nicht gefunden und deshalb frage ich hier mal nach:
Warum funktioniert der KeyListener nicht:
Und die Main:
An der Klasse Spieler liegt es nicht, da ich auch keine anderen aktionen mit Tasten ausführen kann. (Siehe Zeile 42-45)
Danke im voraus
ich habe den Fehler noch nicht gefunden und deshalb frage ich hier mal nach:
Warum funktioniert der KeyListener nicht:
Java:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JPanel;
public class GamePanel extends JPanel implements KeyListener
{
Spieler spieler;
public GamePanel(final Spieler spieler)
{
this.spieler = spieler;
this.addKeyListener(this);
}
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode() == KeyEvent.VK_UP)
{
spieler.hochBewegung();
}
if (e.getKeyCode() == KeyEvent.VK_RIGHT)
{
spieler.rechtsBewegung();
}
if (e.getKeyCode() == KeyEvent.VK_LEFT)
{
spieler.linksBewegung();
}
if (e.getKeyCode() == KeyEvent.VK_W)
{
spieler.hochBewegung();
}
if (e.getKeyCode() == KeyEvent.VK_D)
{
spieler.rechtsBewegung();
}
if (e.getKeyCode() == KeyEvent.VK_A)
{
spieler.linksBewegung();
}
if (e.getKeyCode() == KeyEvent.VK_ESCAPE)
{
System.exit(0);
}
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
this.setBackground(Color.white);
this.repaint();
spieler.draw(g);
}
public void keyReleased(KeyEvent arg0){}
public void keyTyped(KeyEvent arg0){}
}
Java:
import javax.swing.JFrame;
public class Main
{
public static void main(String[] args)
{
Spieler s = new Spieler(100, 100);
GamePanel g = new GamePanel(s);
JFrame f = new JFrame("Game");
f.setSize(500, 500);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(g);
f.setVisible(true);
}
}
Danke im voraus