Maison >Java >javaDidacticiel >Comment gérer les entrées utilisateur en mode exclusif plein écran de Java ?

Comment gérer les entrées utilisateur en mode exclusif plein écran de Java ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-30 21:01:14598parcourir

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

Gestion des entrées utilisateur en mode exclusif plein écran en Java

Introduction

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

Problème

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

Solution

Le squelette suivant fournit un exemple révisé qui implémente la gestion des événements pour les clics de souris et pressions sur les touches 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 du clavier et de la souris sont gérés correctement en mode exclusif plein écran. Il enregistre les écouteurs d'événements clés à l'aide de getInputMap et getActionMap, et enregistre les écouteurs d'événements de souris à l'aide de addMouseMotionListener.

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!

Déclaration:
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