KeyListener und ActionListener Problem

Dasha

Mitglied
Hi,

ich habe momentan ein sehr misteriöses Problem.
Ich hab einen Key- und einen ButtonListener, welche beide eigentlich korrekt arbeiten.
Ich kann mein Spiel über die Taste S oder über den Button "starten" aufrufen, das Spiel ist dann noch pausiert.
Mit P kann ich das Spiel dann fortsetzen/beginnen.
Mit dem KeyListener funktioniert es ohne Probleme aber in Kombination mit den Button Listener tauchen dann einige Probleme auf.

Die Kombination S und P funktioniert ohne Probleme aber wenn ich den "starten" Button klicke und dann P funktioniert es nicht.
Sobald ich den Button drücke reagiert mein KeyListener nicht mehr auf irgendwelche Eingaben.

Java:
Ausschnitt aus Code:
//Aus dem SpielPanel

startButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) 
	                {game.start(); System.out.println("Spiel aufgerufen"); }});

...
this.addKeyListener(keyboardListener);
this.setFocusable(true);
..


//Zum starten und pausieren (innere Klasse)
class KeyboardListener implements KeyListener
{
       if(!game.isTerminated())
       {
	     if(event.getKeyCode() == KeyEvent.VK_P)
	     {
		   if(!game.isRunning())	
		    {
				game.setRunning(true);
		    }
		   else	
	           {
				game.setRunning(false);
		    }
		}
          }

if(game.isTerminated())
{
	if(event.getKeyCode() == KeyEvent.VK_S)
	{
		game.start();
	}
}
}
}

Ich hab nicht wirklich keine Idee wo da der Fehler ist.
Meine Vermutung wäre ja, dass es was mit this.setFocusable(true); zutun hat.
Beim Klick wird der Fokus irgendwie verändert wird oder so, aber KA.

mfg
 

fastjack

Top Contributor
Mach mal im KeyboardListener eine Ausgabe, welcher Key gedrückt wurde. Dann siehst Du auf jeden Fall schonmal, ob dort etwas angekommmen ist.
 

HimBromBeere

Top Contributor
In deiner Klasse
Code:
KeyboardListener
fehlen sämtliche Methiden, insb. diejenigen, welche KeyListener implementieren (KeyTyped, KeyPressed...). Wundert mich, dass das überhauot kompiliert.
 

Dasha

Mitglied
Die Methoden sind drinne, sonst würde ich das Programm ja gar nicht starten können. Den ganzen GUI-Code und die Abfragen für die X-Anderen Tasten hab ich mal weggelassen damit es übersichtlicher wird.

Der KeyListener funktioniert im Grunde ja, wenn ich eine Taste drücke wird auch der Code ausgeführt. Ich hab es schon mit System.ou. getestet.
Aber sobald ich einen Button drücke, egal ob er jetzt das Spiel aufruft, das Spiel pausiert oder nur Text auf der Konsole ausgibt reagiert der keyListener nicht mehr.

Java:
JButton startButton = new JButton("Spiel starten");
		JTextField spielerName = new JTextField("Spieler");
		JButton pauseButton = new JButton("Spiel fortsetzen");
		
		JButton upButton = new JButton();
		JButton leftButton = new JButton();
		JButton fireButton = new JButton();
		JButton rightButton = new JButton();
		JButton downButton = new JButton();
		
		JLabel lebensAnzeige = new JLabel("3 Leben übrig");
		JSlider speedAnzeige = new JSlider();
		
		startButton.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) 
	                { System.out.println("www");}});


		this.setLayout(new GridLayout(3,1));
		
		JPanel benutzerPanel = new JPanel();
			benutzerPanel.setLayout(new GridLayout(5,1));
			benutzerPanel.setBorder(BorderFactory.createEmptyBorder(15,15, 10, 15));
				benutzerPanel.add(startButton);
				benutzerPanel.add(new JLabel());
				benutzerPanel.add(pauseButton);
				benutzerPanel.add(new JLabel());
				JPanel namensEingabePanel = new JPanel();
				namensEingabePanel.setLayout(new GridLayout(1,2));
					namensEingabePanel.add(new JLabel("Spielername:"));
					namensEingabePanel.add(spielerName);
				benutzerPanel.add(namensEingabePanel);
				
		
		
		JPanel steuerungsPanel = new JPanel();
			steuerungsPanel.setLayout(new GridLayout(3,3));
			steuerungsPanel.setBorder(BorderFactory.createEmptyBorder(20,30, 20, 30));
				steuerungsPanel.add(new JLabel());
				steuerungsPanel.add(upButton);
				steuerungsPanel.add(new JLabel());
				steuerungsPanel.add(leftButton);
				steuerungsPanel.add(fireButton);
				steuerungsPanel.add(rightButton);
				steuerungsPanel.add(new JLabel());
				steuerungsPanel.add(downButton);
				steuerungsPanel.add(new JLabel());
				
		JPanel spielerDatenPanel = new JPanel();
			spielerDatenPanel.setLayout(new GridLayout(3,1));
			spielerDatenPanel.setBorder(BorderFactory.createEmptyBorder(20,30, 20, 30));
				spielerDatenPanel.add(lebensAnzeige);
				spielerDatenPanel.add(speedAnzeige);

	
		this.add(benutzerPanel);
		this.add(steuerungsPanel);
		this.add(spielerDatenPanel);
		this.addKeyListener(keyboardListener);
		
		this.setFocusable(true);
		this.setVisible(true);
 

HimBromBeere

Top Contributor
Könnte daran liegen, dass du duchr den Klick auf den Button ja den Fokus klaust... solltest du mit
Code:
Component#requestFocus
beheben können (wobei bei dir der Frame die Komponente sein sollte).
 

Dasha

Mitglied
Ah, super Danke :)
Also der Button nimmt sich jetzt nicht mehr den Focus sondern fragt quasi nach ob er ihn kurzzeitig von Frame haben/benutzen kann?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
U ActionListener und KeyListener - KeyListener funktioniert nicht 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
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
Z KeyListener funktioniert nicht? Weshalb? Java Basics - Anfänger-Themen 8
T KeyListener Java Basics - Anfänger-Themen 2
Gfreak23 Input/Output KeyListener funktioniert auf Laptop nicht allerdings auf Tower-PC Java Basics - Anfänger-Themen 8
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
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
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
K Input/Output KeyListener funktioniert nicht Java Basics - Anfänger-Themen 3
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
Maxim6394 KeyListener funktioniert nicht Java Basics - Anfänger-Themen 20
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
J KeyListener (keyTyped) funktioniert nicht Java Basics - Anfänger-Themen 9
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
O KeyListener funktioniert nur wenn er will Java Basics - Anfänger-Themen 2
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
Das Brot Nach .add(JRadioButton) funktioniert der KeyListener nicht mehr 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
M TabbedPane: KeyListener funktioniert nicht mehr Java Basics - Anfänger-Themen 8
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
H KeyListener funktioniert nicht Java Basics - Anfänger-Themen 8
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
A KeyListener funktioniert nicht Java Basics - Anfänger-Themen 7
D KeyListener Java Basics - Anfänger-Themen 7
B Keylistener auf JSpinner reagiert nicht? Java Basics - Anfänger-Themen 3
G KeyListener für die Taste "/" Java Basics - Anfänger-Themen 5
E brauche hilfe beim KeyListener Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben