Maison > Java > javaDidacticiel > Comment gérer les événements du clavier et de la souris en mode exclusif plein écran de Java ?

Comment gérer les événements du clavier et de la souris en mode exclusif plein écran de Java ?

DDD
Libérer: 2024-12-19 12:04:10
original
980 Les gens l'ont consulté

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

Gestion des événements clavier et souris en mode exclusif plein écran en Java

Lorsque vous travaillez en mode de rendu passif, les interfaces KeyListener et ActionListener peuvent être utilisées pour gérer les événements générés par l'utilisateur. Mais lorsque l'application passe en mode plein écran, l'approche traditionnelle de la gestion des événements peut ne pas fonctionner comme prévu.

Cet article explique la méthode correcte pour gérer les événements en mode plein écran. Il étend le code squelette fourni pour implémenter la gestion des événements de clic de souris et d'appui sur une touche tout en garantissant que le code reste concis.

Squelette de code pour le mode plein écran

Le squelette de code suivant prépare le terrain pour le plein écran mode exclusif et restitue les graphiques dans une fenêtre à l'aide d'une minuterie :

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();
    }
}
Copier après la connexion

Implémentation de la gestion des événements liés aux clics de souris et aux touches

Ce qui suit le code étend le squelette en ajoutant la gestion des événements pour les clics de souris et les pressions sur les touches en mode plein écran :

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
            }
        });
    }
}
Copier après la connexion

La classe MouseAdapter fournit les méthodes nécessaires pour gérer les événements de souris, tels que les clics. De même, la classe KeyAdapter simplifie la gestion des événements de pression sur les touches.

Utilisation

Pour utiliser ces capacités de gestion d'événements, instanciez la classe Applet et appelez sa méthode init().

Conclusion

Ce code montre comment gérer efficacement les événements du clavier et de la souris lorsque l'application fonctionne en mode exclusif plein écran. La solution fournie est simple, fiable et compatible avec l'environnement plein écran.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal