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!