"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment gérer la saisie des utilisateurs dans le mode exclusif complet de Java?

Comment gérer la saisie des utilisateurs dans le mode exclusif complet de Java?

Publié le 2025-04-15
Parcourir:493

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

Gestion de la saisie de l'utilisateur en mode exclusif en plein écran en java

introduction

Lors de l'exécution d'une application Java en mode exclusif plein écran, les mécanismes de traitement des événements habituels peuvent ne pas fonctionner comme prévu. Cet article explore l'approche correcte pour gérer la saisie des utilisateurs du clavier et de la souris dans ce mode.

Problème

Le mode de rendu passif permet d'utiliser les interfaces KeyListener et ActionListener pour gérer l'entrée de l'utilisateur. Cependant, en mode exclusif plein écran, ces méthodes peuvent ne pas fonctionner comme prévu.

Solution

Le squelette suivant fournit un exemple révisé qui implémente la manipulation des événements pour les clics de souris et les pressions de clés en mode plein écran:

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
    // ...
}

Cet exemple révisé garantit que les événements de clavier et de souris sont gérés correctement en mode exclusif plein écran. Il enregistre des auditeurs d'événements clés à l'aide de GetInputMap et GetActionMap, et enregistre des écouteurs d'événements de souris à l'aide d'AddMousmotionListener.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3