Keller-Dev Docs · Java & Hytale

Java Core

Tastatur-Fokus nach Fenstererstellung erzwingen

Ein häufiger Fehler bei Desktop-Anwendungen in Java ist, dass nach dem Öffnen des Fensters Tastatureingaben ignoriert werden, weil kein Element explizit den Fokus besitzt. Lösung: Nachdem das Fenster sichtbar geschaltet wurde (frame.setVisible(true)), muss explizit panel.requestFocusInWindow() aufgerufen werden. Dies garantiert, dass die Key-Events sofort ab dem ersten Frame beim Panel ankommen.

Referenz: Datei 1. Spielprojekt · Klasse GameWindow.GamePanel
frame.setVisible(true);

// Zwingend erforderlich, damit Tastatureingaben sofort erkannt werden
gamePanel.requestFocusInWindow();

// Erst danach den Loop starten
GameLoop gameLoop = new GameLoop(gamePanel);
gameLoop.start();
#swing #focus #input #ui-lifecycle
Bearbeiten