Heim > Java > javaLernprogramm > Wie gehe ich mit Tastatur- und Mausereignissen im exklusiven Vollbildmodus von Java um?

Wie gehe ich mit Tastatur- und Mausereignissen im exklusiven Vollbildmodus von Java um?

DDD
Freigeben: 2024-12-19 12:04:10
Original
980 Leute haben es durchsucht

How to Handle Keyboard and Mouse Events in Java's Full-Screen Exclusive Mode?

Verarbeiten von Tastatur- und Mausereignissen im exklusiven Vollbildmodus in Java

Beim Betrieb im passiven Rendering-Modus können die Schnittstellen KeyListener und ActionListener zum Verwalten von Ereignissen verwendet werden, die von generiert werden der Benutzer. Wenn die Anwendung jedoch in den Vollbildmodus wechselt, funktioniert der herkömmliche Ansatz zur Ereignisbehandlung möglicherweise nicht wie erwartet.

In diesem Artikel wird die richtige Methode zur Behandlung von Ereignissen im Vollbildmodus erläutert. Es erweitert den bereitgestellten Grundcode, um die Behandlung von Mausklick- und Tastendruck-Ereignissen zu implementieren und gleichzeitig sicherzustellen, dass der Code prägnant bleibt.

Code-Gerüst für den Vollbildmodus

Das folgende Code-Gerüst bereitet die Bühne für den Vollbildmodus Exklusivmodus und rendert Grafiken in einem Fenster mithilfe eines Timers:

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.image.BufferStrategy;
import javax.swing.JFrame;
import javax.swing.Timer;

public class Applet {

    Timer timer;
    JFrame frame;
    DisplayMode[] displayModes = new DisplayMode[] {
            new DisplayMode(1280, 800, 32, 60)
    };

    BufferStrategy bufferStrategy;
    Rectangle bounds;

    public void init() {
        GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice device = env.getDefaultScreenDevice();

        setIgnoreRepaint(true);

        GraphicsConfiguration gc = device.getDefaultConfiguration();
        frame = new JFrame(gc);

        device.setFullScreenWindow(frame);

        if (device.isDisplayChangeSupported())
            device.setDisplayMode(displayModes[0]);

        frame.createBufferStrategy(2);
        bufferStrategy = frame.getBufferStrategy();

        timer = new Timer(1000 / 50, new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent arg0) {
                Graphics2D g = null;
                try {
                    g = (Graphics2D) bufferStrategy.getDrawGraphics();
                    render(g);
                } finally {
                    g.dispose();
                }
                bufferStrategy.show();
            }

        });
    }

    private void render(Graphics2D g) {
        g.setColor(Color.BLACK);
        g.fillRect(0, 0, bounds.width, bounds.height);
    }

    public void start() {
        timer.start();
    }

    public void stop() {
        timer.stop();
    }
}
Nach dem Login kopieren

Mausklick- und Tastendruck-Ereignisbehandlung implementieren

Der folgende Code erweitert die Skelett durch Hinzufügen einer Ereignisbehandlung für Mausklicks und Tastendrücke im Vollbildmodus:

import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

class Applet extends Applet {

    @Override
    public void init() {
        super.init();
        this.addMouseListener(new MouseAdapter() {

            @Override
            public void mouseClicked(MouseEvent e) {
                // Handle mouse click event
            }
        });

        this.addKeyListener(new KeyAdapter() {

            @Override
            public void keyPressed(KeyEvent e) {
                // Handle key press event
            }
        });
    }
}
Nach dem Login kopieren

Die MouseAdapter-Klasse stellt die notwendigen Methoden zur Behandlung von Mausereignissen, wie z. B. Klicks, bereit. In ähnlicher Weise vereinfacht die KeyAdapter-Klasse die Handhabung von Tastendruckereignissen.

Verwendung

Um diese Ereignisverarbeitungsfunktionen zu nutzen, instanziieren Sie die Applet-Klasse und rufen ihre init()-Methode auf.

Fazit

Dieser Code zeigt, wie Tastatur- und Mausereignisse effektiv verarbeitet werden, während die Anwendung im exklusiven Vollbildmodus ausgeführt wird. Die bereitgestellte Lösung ist einfach, zuverlässig und mit der Vollbildumgebung kompatibel.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit Tastatur- und Mausereignissen im exklusiven Vollbildmodus von Java um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage