Einführung
Beim Ausführen einer Java-Anwendung im exklusiven Vollbildmodus Modus funktionieren die üblichen Mechanismen zur Ereignisbehandlung möglicherweise nicht wie erwartet. In diesem Artikel wird der richtige Ansatz zur Verarbeitung von Benutzereingaben über Tastatur und Maus in diesem Modus untersucht.
Problem
Der passive Rendering-Modus ermöglicht die Verwendung von KeyListener- und ActionListener-Schnittstellen zur Verarbeitung Benutzereingaben. Im exklusiven Vollbildmodus funktionieren diese Methoden jedoch möglicherweise nicht wie vorgesehen.
Lösung
Das folgende Grundgerüst stellt ein überarbeitetes Beispiel dar, das die Ereignisbehandlung für Mausklicks und implementiert Tastendrücke im Vollbildmodus:
import java.applet.Applet; import java.awt.Color; import java.awt.DisplayMode; import java.awt.Graphics2D; import java.awt.GraphicsConfiguration; import java.awt.GraphicsDevice; import java.awt.GraphicsEnvironment; import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.image.BufferStrategy; import javax.swing.JFrame; import javax.swing.Timer; public class applet extends Applet { Timer timer; JFrame frame; DisplayMode[] displayModes = new DisplayMode[] { new DisplayMode(1280, 800, 32, 60) }; BufferStrategy bufferStrategy; Rectangle bounds; /** * */ private static final long serialVersionUID = 1L; /** * @param args */ public void init() { // ... Same as before // ... // Register key event listeners this.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_Q, 0), "EXIT"); this.getActionMap().put("EXIT", new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { // Exit key handling } }); // Register mouse event listeners this.addMouseMotionListener(new MouseAdapter() { @Override public void mouseMoved(MouseEvent e) { // Mouse movement handling } }); } // ... Same as before // ... }
Dieses überarbeitete Beispiel stellt sicher, dass Tastatur- und Mausereignisse im exklusiven Vollbildmodus korrekt verarbeitet werden. Es registriert wichtige Ereignis-Listener mit getInputMap und getActionMap und Maus-Ereignis-Listener mit addMouseMotionListener.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit Benutzereingaben im exklusiven Vollbildmodus von Java um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!