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