Home >Java >javaTutorial >How to Handle User Input in Java's Full-Screen Exclusive Mode?
Introduction
When running a Java application in full screen exclusive mode, the usual event handling mechanisms may not work as expected. This article explores the correct approach to handle user input from keyboard and mouse in this mode.
Problem
Passive rendering mode allows the use of KeyListener and ActionListener interfaces to handle user input. However, in full screen exclusive mode, these methods may not function as intended.
Solution
The following skeleton provides a revised example that implements event handling for mouse clicks and key presses in full screen mode:
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 // ... }
This revised example ensures that keyboard and mouse events are handled correctly in full screen exclusive mode. It registers key event listeners using getInputMap and getActionMap, and registers mouse event listeners using addMouseMotionListener.
The above is the detailed content of How to Handle User Input in Java's Full-Screen Exclusive Mode?. For more information, please follow other related articles on the PHP Chinese website!