„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie behandle ich den Benutzereingang im exklusiven Modus von Java von Java?

Wie behandle ich den Benutzereingang im exklusiven Modus von Java von Java?

Gepostet am 2025-03-26
Durchsuche:615

How to Handle User Input in Java's Full-Screen Exclusive Mode?

verwandeln Benutzereingaben im Vollbildmodus in java

Einführung

Wenn eine Java -Anwendung im Vollbildmodus exklusiver Modus ausgeführt wird, funktioniert die übliche Ereignisbehandlung möglicherweise nicht wie erwartet. In diesem Artikel wird der richtige Ansatz zur Handlung von Benutzereingaben von Tastatur und Maus in diesem Modus untersucht.

problem

passiver Rendering -Modus ermöglichen die Verwendung von KeyListener und ActionListener -Schnittstellen, um Benutzereingaben zu verarbeiten. Im exklusiven Vollbildmodus funktionieren diese Methoden jedoch möglicherweise nicht wie beabsichtigt.

lösung

Das folgende Skelett liefert ein überarbeitetes Beispiel, das Ereignisbehandlungen für Mausklicks und Schlüsselpresse im Vollbildmodus implementiert:

Java.applet.applet.aplet.aplet.aplet.aplet.applet.applet.applet.applet.applet.applet.applet. Import Java.awt.Color; importieren java.awt.displaymode; Import Java.awt.Graphics2d; importieren java.awt.graphics configuration; Import Java.awt.GraphicsDevice; Import Java.awt.Graphics -Environment; 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.mouseeEvent; Import Java.awt.image.BufferStrategy; importieren javax.swing.jframe; import Javax.swing.timer; Public Class Applet erweitert Applet { Timer -Timer; JFrame Frame; DisplayMode [] displayModes = new displayMode [] { neuer Displaymodes (1280, 800, 32, 60) }; Bufferstrategy Pufferstrategy; Rechteckgrenzen; /** * */ private statische endgültige lange Serialversionuid = 1L; /** * @param args */ public void init () { // ... wie zuvor // ... // Key Event -Hörer registrieren this.getInputMap (). this.getActionMap (). Put ("exit", new AbstractAction () { @Override public void actionperformed (actionEvent e) { // Tastenbearbeitung beenden } }); // Mausereignis Hörer registrieren this.addMousemotionListener (New Mouseadapter () { @Override public void mousemoved (mouseEvent e) { // Mausbewegungshandhabung } }); } // ... wie zuvor // ... }
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 behandelt werden. IT registriert die wichtigsten Ereignishörer mit GetInputMap und GetActionMap und registriert Mausereignishörer mit AddMousemotionListener.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3