Liebe Java-Forum Community
Ich habe bereits einige Foren durchgestöbert, mich in YouTube, Google und hier versucht schlau zu machen, jedoch vergebens.
Die Beiträge die ich für den KeyListener gefunden habe sind alle für Java Swing und nicht für eine FXML Application gedacht.
Ich habe die Beispiele die mir vorgeschlagen durchprobiert, aber leider hat keines dieser so funktioniert wie ich es mir erhofft hatte.
So nun zu meinem genauen Problem:
Ich bin dabei ein Art Jump'n'Run zu entwickeln. Beim auswählen der Pfeiltasten(Hoch, Runter) soll sich die Figur beim drücken nach oben bewegen. Dazu habe ich wie vorgeschrieben, die "keyPressed(KeyEvent e"- Methode benutzt. In diesem Beispiel möchte ich nur das gedrückte in der Konsole ausgeben um zu testen ob er die Methode überhaupt ausführt.
KeyHandler Klasse:
Da man in einer FXML Application immer einen Controller des jeweiligen FXMLs besitzt, muss ich das jetzt irgendwie mit dem Controller verbinden.
Jedoch weiss ich leider nicht genau wie ich das anstellen soll. Das Einzige was in dem Controller ausgeführt wird ist die "initialize"-Methode:
Das MoveBackground verschiebt nur den Hintergrund.
Ich weiss das ich es mit "addKeyListener(KeyEvent keyEvent)" dem Fenster übergeben kann, nur will er dann eine Methode generieren, die eine Unsupported Operation Exeption haben möchte.
Wie kann ich nun den KeyListener in meiner Application aufrufen, ohne das er mir eine "NullPointerException" oder eine Methode mit der "Unsupported Operation Exeption"
Ich habe bereits einige Foren durchgestöbert, mich in YouTube, Google und hier versucht schlau zu machen, jedoch vergebens.
Die Beiträge die ich für den KeyListener gefunden habe sind alle für Java Swing und nicht für eine FXML Application gedacht.
Ich habe die Beispiele die mir vorgeschlagen durchprobiert, aber leider hat keines dieser so funktioniert wie ich es mir erhofft hatte.
So nun zu meinem genauen Problem:
Ich bin dabei ein Art Jump'n'Run zu entwickeln. Beim auswählen der Pfeiltasten(Hoch, Runter) soll sich die Figur beim drücken nach oben bewegen. Dazu habe ich wie vorgeschrieben, die "keyPressed(KeyEvent e"- Methode benutzt. In diesem Beispiel möchte ich nur das gedrückte in der Konsole ausgeben um zu testen ob er die Methode überhaupt ausführt.
KeyHandler Klasse:
Java:
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class KeyHandler implements KeyListener {
@Override
public void keyPressed(KeyEvent e) {
if ( e.getKeyCode() == KeyEvent.VK_DOWN ){
System.out.println("Unten");
}
if ( e.getKeyCode() == KeyEvent.VK_UP ){
System.out.println("Oben");
}
if ( e.getKeyCode() == KeyEvent.VK_LEFT ){
System.out.println("Links");
}
if ( e.getKeyCode() == KeyEvent.VK_RIGHT ){
System.out.println("Rechts");
}
System.err.println("Ich bin drin aber es wurde nichts gedrückt");
}
}
Da man in einer FXML Application immer einen Controller des jeweiligen FXMLs besitzt, muss ich das jetzt irgendwie mit dem Controller verbinden.
Jedoch weiss ich leider nicht genau wie ich das anstellen soll. Das Einzige was in dem Controller ausgeführt wird ist die "initialize"-Methode:
Java:
@Override
public void initialize(URL url, ResourceBundle rb) {
background2.setX(1700);
background.setX(0);
MoveBackground();
}
Das MoveBackground verschiebt nur den Hintergrund.
Ich weiss das ich es mit "addKeyListener(KeyEvent keyEvent)" dem Fenster übergeben kann, nur will er dann eine Methode generieren, die eine Unsupported Operation Exeption haben möchte.
Wie kann ich nun den KeyListener in meiner Application aufrufen, ohne das er mir eine "NullPointerException" oder eine Methode mit der "Unsupported Operation Exeption"
Zuletzt bearbeitet: