introducción
cuando ejecuta una aplicación Java en modo exclusivo de pantalla completa, los mecanismos de manejo de eventos habituales pueden no funcionar como se esperan como se esperan. Este artículo explora el enfoque correcto para manejar la entrada del usuario desde el teclado y el mouse en este modo.
problema
El modo de representación pasiva permite el uso de interfaces KeyListener e ActionListener para manejar la entrada del usuario. Sin embargo, en el modo exclusivo de la pantalla completa, estos métodos pueden no funcionar según lo previsto.
solución
El siguiente esqueleto proporciona un ejemplo revisado que implementa el manejo de eventos para hacer clics de mouse y prensas de teclas en modo de pantalla completa:
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 // ... }
Este ejemplo revisado garantiza que los eventos de teclado y mouse se manejen correctamente en modo exclusivo de pantalla completa. Registra a los oyentes de eventos clave que usan GetInputMap y GetActionMap, y registra a los oyentes de eventos del mouse que usan AddMouseMotionListener.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3