KeyListener funktioniert nicht

Status
Nicht offen für weitere Antworten.

hyperion

Bekanntes Mitglied
Hallo,

hatte heute mal wieder ein wenig Lust zu programmieren und da wollte ich mich mal damit versuchen das Spiel Snake nachzubauen. Habe mir schon gedacht, dass ich das nicht alles runterprogrammieren kann und ein paar mal hängen bleiben werde, aber das ist ja nicht weiter schlimm.

Die Schlange soll der benutzer mit den Pfeiltasten steuern können. Leider passiert noch gar nichts wenn der Benutzer eine Pfeiltaste drückt.

Code:
public class SnakeGame 
{
	...	
	SnakeGame()
	{
		//Begin of GUI
                ...
		labyrinth = new Labyrinth();
                ...
		//End of GUI
	}
	
	public static void main(String[] input)
	{
		new SnakeGame();
	}
}

Code:
class Labyrinth extends JLabel
{
	Snake schlange;
	
	Labyrinth()
	{
		...
		
		schlange = new Snake(pos, this);
		[b]addKeyListener((KeyListener)schlange);[/b]
	}
	
	public void setBackground(Color farbe)
	{
		super.setBackground(farbe);
	}

	public void paint(Graphics g)
	{
		...
	}	
}

Code:
public class Snake [b]implements KeyListener[/b]
{
	Labyrinth test;
        ...
	
	Snake(int[][] pos, Labyrinth test)
	{
		this.pos = pos;
		this.test = test;
	}	
	
	public void moveUp()
	{
		
	}
	
	public void moveRight()
	{
		[b]test.setBackground(Color.cyan);[/b]
	}
	
	public void moveDown()
	{
		
	}
	
	public void moveLeft()
	{
		
	}
	
	public void keyReleased(KeyEvent e)
	  {
		  
	  }
	  [b]public void keyPressed(KeyEvent e)
	  {
		 if (e.getKeyCode() == KeyEvent.VK_RIGHT)
		 {
			 moveRight();
		 }
	  }[/b]

	  public void keyTyped(KeyEvent e)
	  {
		  
	  }
}

Eigentlich sollte doch der Hintergrund des JLabels cyan werden, er bleibt aber weiß. Ich habe das Gefühl es liegt an addKeyListener((KeyListener)schlange);, da ich ehrlichgesagt überhaupt nicht wusste wo ich diesen KeyListener drauf tun sollte. Bei einem ActionListener ist es ja einfach. Einfach auf den auslösenden Button, aber bei einem KeyListener kann ich die Pfeiltaste adden;) Wenn Ihr noch Code braucht wo jetzt "..." steht sagt bitte bescheid.

mfg hyperion
 

cover1012

Aktives Mitglied
ohne mir deinen Code genau angesehen zu haben und ohne Verständnis, warum du ein JLabel als Zeichenfläche benutzt:
Du kannst zwar einem JLabel einen Keylistener hinzufügen, nur braucht das Label ja den Focus damit der Listener anspricht. Ich vermute, genau hier liegt das Problem.
 

AmunRa

Gesperrter Benutzer
Du musst ihm auch noch den Auftrag geben das Fenster neuzu zeichnen mit repaint() z.B.


Den KeyListener addest du am Besten dem Fenster auf dem du zeichnen möchtest und nicht auf nem Label
 
Zuletzt bearbeitet:

hyperion

Bekanntes Mitglied
Hallo,

ah ok, ich habe irgendow mal gelesen, dass ein JLabel zum Zeichnen verwendet werden soll. Aber worauf soll ich denn dann zeichnen? Meinst du mit Fenster ein JWindow?

mfg hyperion
 

AmunRa

Gesperrter Benutzer
kannst ein JWindow verwenden ein JFrame oder auch ein JPanel

wobei du für letzteres auch wieder ein Frame oder Window brauchst um es anzuzeigen
 
M

MiDniGG

Gast
Hm? Wieso nicht einfach ein Canvas? Oder sitz ich grad aufm Schlauch???
 

Verjigorm

Top Contributor
In/auf JFrame/JWindow zeichnet man nur, wenn man sich das genau überlegt hat.

Stell dir mal vor, du hast eine komplexe Zeichnung auf deinem JFrame und willst noch einen Button oder sonstwas hinzufügen, dann kriegste Schwierigkeiten.
Deshalb ist Zeichnen auf einem JPanel/JLabel imho sinnvoller.
 

hyperion

Bekanntes Mitglied
Hallo,

leider hat sich das Problem imemrnoch nicht erledigt und die Meinungen scheinen hier doch ziemlich auseinander zu gehen.
Ich bin jetzt bei einem JLabel geblieben, weil ich das für meine Bedürfnisse passend finde und zumindest einer gesagt hat, dass das nicht verkehrt sei.
Wie setzte ich denn den Fokus auf das JLabel? Habe es shcon mit exzessiven Kilcks auf das JLabel probiert aber die Pfeiltasten zeigen leider trotzdem keine Wirkung.

Und daran könnte es nicht liegen:
addKeyListener((KeyListener)schlange);

Das schaut für mich irgendwie komisch aus und ich habe das nur gemacht, weil es nur mit schlange nicht ging;)

mfg hyperion
 

hyperion

Bekanntes Mitglied
Hallo,

also es lag am Fokus. Mit der Mehtode requestFocusInWindow() lässt sich der Fokus zuweisen;)

mfg hyperion
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z KeyListener funktioniert nicht? Weshalb? Java Basics - Anfänger-Themen 8
Gfreak23 Input/Output KeyListener funktioniert auf Laptop nicht allerdings auf Tower-PC Java Basics - Anfänger-Themen 8
K Input/Output KeyListener funktioniert nicht Java Basics - Anfänger-Themen 3
Maxim6394 KeyListener funktioniert nicht Java Basics - Anfänger-Themen 20
J KeyListener (keyTyped) funktioniert nicht Java Basics - Anfänger-Themen 9
Das Brot Nach .add(JRadioButton) funktioniert der KeyListener nicht mehr Java Basics - Anfänger-Themen 2
U ActionListener und KeyListener - KeyListener funktioniert nicht Java Basics - Anfänger-Themen 2
M TabbedPane: KeyListener funktioniert nicht mehr Java Basics - Anfänger-Themen 8
A KeyListener funktioniert nicht Java Basics - Anfänger-Themen 7
E Keylistener funktioniert nicht richtig. Java Basics - Anfänger-Themen 17
G Applet mit Keylistener funktioniert nicht Java Basics - Anfänger-Themen 3
D KeyListener funktioniert nicht Java Basics - Anfänger-Themen 10
O KeyListener funktioniert nur wenn er will Java Basics - Anfänger-Themen 2
P Wie kann ich meine Keylistener Klasse unterscheiden lassen, von welcher "Quelle" der Input kommt? Java Basics - Anfänger-Themen 2
B Bild per KeyListener drehen Java Basics - Anfänger-Themen 1
javalux123 Keylistener auf andere Fenster Java Basics - Anfänger-Themen 3
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
M KeyListener reagiert nicht Java Basics - Anfänger-Themen 4
M Mit KeyListener Farbe von Label ändern Java Basics - Anfänger-Themen 13
N Java Keylistener Java Basics - Anfänger-Themen 2
B KeyListener funkioniert nicht Java Basics - Anfänger-Themen 2
F KeyListener Java Basics - Anfänger-Themen 3
S Erste Schritte 2D Grafik Probleme mit KeyListener. Java Basics - Anfänger-Themen 18
G KeyListener und JButton vertragen sich nicht Java Basics - Anfänger-Themen 1
J-Gallus Keylistener verstehen Java Basics - Anfänger-Themen 17
S Keylistener Java Basics - Anfänger-Themen 16
S Keylistener im Grafikfenster Java Basics - Anfänger-Themen 3
H Mouse- und KeyListener Probleme? Java Basics - Anfänger-Themen 5
N KeyListener in Thread Java Basics - Anfänger-Themen 0
LexeB4F for schliefe in KeyListener Java Basics - Anfänger-Themen 3
R KeyListener auslagern Java Basics - Anfänger-Themen 3
J KeyListener aus anderer Klasse bereitet Probleme Java Basics - Anfänger-Themen 1
T KeyListener Java Basics - Anfänger-Themen 2
J KeyListener - mal wieder... Java Basics - Anfänger-Themen 2
TheSorm KeyListener Problem Java Basics - Anfänger-Themen 4
M KeyListener Java Basics - Anfänger-Themen 3
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
D KeyListener nicht mehr aktiv nach ActionPerformed Java Basics - Anfänger-Themen 2
C Mehrere Tasten beim KeyListener gleichzeitig lesen Java Basics - Anfänger-Themen 2
L Input/Output Java 3D mit KeyListener Java Basics - Anfänger-Themen 1
S KeyListener reagiert nicht. Java Basics - Anfänger-Themen 4
L KeyListener ohne textfeld Java Basics - Anfänger-Themen 4
J KeyListener,MouseListener,MouseMotionListener und static Java Basics - Anfänger-Themen 7
P Klassen Bei KeyEvent in KeyListener den Tastendruck abbrechen Java Basics - Anfänger-Themen 5
B KeyListener als allgemeine Methode Java Basics - Anfänger-Themen 5
H KeyListener auf ganzes Fenster setzen Java Basics - Anfänger-Themen 14
0 KeyListener ausserhalb der Applikation Java Basics - Anfänger-Themen 5
G KeyListener Java Basics - Anfänger-Themen 4
D KeyListener und ActionListener Problem Java Basics - Anfänger-Themen 6
J KeyListener funtioniert nicht! Java Basics - Anfänger-Themen 3
J KeyListener Java Basics - Anfänger-Themen 11
P Input/Output KeyListener reagiert nicht Java Basics - Anfänger-Themen 4
G KeyListener, Fokus Java Basics - Anfänger-Themen 8
A Input/Output Keylistener Aktiv schalten Java Basics - Anfänger-Themen 8
J keyListener - Genau 1 Aktion soll bei 1 Tastenausdruck ausgeführt werden Java Basics - Anfänger-Themen 11
S KeyListener Java Basics - Anfänger-Themen 2
A Erste Schritte Problem mit KeyListener Java Basics - Anfänger-Themen 6
Maxim6394 KeyListener geht nicht Java Basics - Anfänger-Themen 15
A Wie KeyListener adden? Java Basics - Anfänger-Themen 15
U KeyListener StackOverflowError Java Basics - Anfänger-Themen 2
W KeyListener auf Applet mit Runnable Java Basics - Anfänger-Themen 4
M Apfel-Spiel KeyListener Java Basics - Anfänger-Themen 33
Luk10 KeyListener Java Basics - Anfänger-Themen 13
S KeyListener aus anderer Klasse hinzufügen Java Basics - Anfänger-Themen 19
P KeyListener im Applet Java Basics - Anfänger-Themen 2
S KeyListener-Anwendung Java Basics - Anfänger-Themen 7
A KeyListener funzt ned Java Basics - Anfänger-Themen 6
D KeyListener, Unterscheidung Groß/Kleinbuchstaben Java Basics - Anfänger-Themen 3
S KeyListener als class? Java Basics - Anfänger-Themen 4
F Applet mit KeyListener, "Alt"-Taste und Konflikt mit Browser Java Basics - Anfänger-Themen 2
P KeyListener Java Basics - Anfänger-Themen 2
S KeyListener für einfaches Programm Java Basics - Anfänger-Themen 3
S KeyListener aktiv auch wenn minimiert? Java Basics - Anfänger-Themen 4
Z Globaler Keylistener Java Basics - Anfänger-Themen 2
V KeyListener Beispiel Java Basics - Anfänger-Themen 13
T canvas killt KeyListener Java Basics - Anfänger-Themen 2
J Keylistener aber wie jTextField auswahl? Java Basics - Anfänger-Themen 3
D KeyListener, nichts passiert Java Basics - Anfänger-Themen 6
D Keylistener zu langsam Java Basics - Anfänger-Themen 7
C Problem mit JPopupMenu, JTextField und Keylistener Java Basics - Anfänger-Themen 2
G Keylistener in einer Schleife Java Basics - Anfänger-Themen 9
M problem mit keylistener Java Basics - Anfänger-Themen 2
N KeyListener ohne GUI? Java Basics - Anfänger-Themen 5
M KeyListener Java Basics - Anfänger-Themen 3
T KeyListener wird nicht ausgelöst Java Basics - Anfänger-Themen 6
O KeyListener Java Basics - Anfänger-Themen 8
Developer_X KeyListener ohne JFrame Java Basics - Anfänger-Themen 13
H KeyListener Java Basics - Anfänger-Themen 4
Developer_X KeyListener Actions (hat mit Java3D zu tun) Java Basics - Anfänger-Themen 20
Developer_X JFrame soll KeyListener adden Java Basics - Anfänger-Themen 32
F Keylistener Java Basics - Anfänger-Themen 12
hdi KeyListener : keyTyped() nicht nutzbar? Java Basics - Anfänger-Themen 1
StickToFreak Runnable + KeyListener? Java Basics - Anfänger-Themen 32
dl85hej Keylistener Java Basics - Anfänger-Themen 16
H KeyListener will nicht reagieren Java Basics - Anfänger-Themen 5
R Fehlersuche - KeyListener, KeyAdaper - Nichts Klappt! Java Basics - Anfänger-Themen 2
G Prob. mit KeyListener und Unterklasse Java Basics - Anfänger-Themen 5
G Keylistener nur besimmte Zeichen zulassen Java Basics - Anfänger-Themen 8
hdi keylistener hat keinen fokus oder: listener ohne frame? Java Basics - Anfänger-Themen 10
D KeyListener Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben