Moin Moin!
Ich habe ein JFrame welches zwei JPanels besitzt. Zum Einen ein Spielfeld für Pong und zum Anderen eine Anzeigetafel für den aktuellen Spielstand.
Doch wenn ich die Anzeigetafel dem JFrame hinzufüge (Zeile 13 - 15), dann funktioniert dessen KeyListener nicht mehr. Ich vermute, dass es was mit dem Focus zu tun hat, aber alles was ich bisher ausprobiert habe war erfolglos.
Hat jmd. eine Idee?
Ich habe ein JFrame welches zwei JPanels besitzt. Zum Einen ein Spielfeld für Pong und zum Anderen eine Anzeigetafel für den aktuellen Spielstand.
Doch wenn ich die Anzeigetafel dem JFrame hinzufüge (Zeile 13 - 15), dann funktioniert dessen KeyListener nicht mehr. Ich vermute, dass es was mit dem Focus zu tun hat, aber alles was ich bisher ausprobiert habe war erfolglos.
Hat jmd. eine Idee?
Java:
public class MyFrame extends JFrame implements WindowListener, KeyListener {
private PongField field;
public MyFrame(String title) {
super(title);
this.setSize(500, 500);
this.addWindowListener(this);
this.addKeyListener(this);
Score score = new Score();
Scoreboard scoreboard = new Scoreboard(score);
scoreboard.setFocusable(false);
getContentPane().add(scoreboard, BorderLayout.NORTH);
field = new PongField(score);
getContentPane().add(field, BorderLayout.CENTER);
this.requestFocus();
}
// #####################################
// Interface: WindowListener
// #####################################
public void windowActivated(WindowEvent event) {}
public void windowClosed(WindowEvent event) {}
public void windowClosing(WindowEvent event) {
event.getWindow().setVisible(false);
event.getWindow().dispose();
System.out.println("Programm wurde geschlossen");
System.exit(0);
}
public void windowDeactivated(WindowEvent event) {}
public void windowDeiconified(WindowEvent event) {}
public void windowIconified(WindowEvent event) {}
public void windowOpened(WindowEvent event) {}
// #################################
// Interface: KeyListener
// #################################
public void keyPressed(KeyEvent event) {
System.out.println("keyPressed");
field.keyPressed(event);
}
public void keyReleased(KeyEvent event) {
field.keyReleased(event);
}
public void keyTyped(KeyEvent event) {
}
}