Home > Java > javaTutorial > How to Handle Keyboard and Mouse Events in Java's Full-Screen Exclusive Mode?

How to Handle Keyboard and Mouse Events in Java's Full-Screen Exclusive Mode?

DDD
Release: 2024-12-19 12:04:10
Original
980 people have browsed it

How to Handle Keyboard and Mouse Events in Java's Full-Screen Exclusive Mode?

Handling Keyboard and Mouse Events in Full Screen Exclusive Mode in Java

When operating in passive rendering mode, the KeyListener and ActionListener interfaces can be used to manage events generated by the user. But when the application transitions to full screen mode, the traditional approach to event handling may not work as expected.

This article explains the correct method for handling events in full screen mode. It extends the provided skeleton code to implement mouse click and key press event handling while ensuring the code remains concise.

Code Skeleton for Full Screen Mode

The following code skeleton sets the stage for full screen exclusive mode and renders graphics in a window using a Timer:

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.image.BufferStrategy;
import javax.swing.JFrame;
import javax.swing.Timer;

public class Applet {

    Timer timer;
    JFrame frame;
    DisplayMode[] displayModes = new DisplayMode[] {
            new DisplayMode(1280, 800, 32, 60)
    };

    BufferStrategy bufferStrategy;
    Rectangle bounds;

    public void init() {
        GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice device = env.getDefaultScreenDevice();

        setIgnoreRepaint(true);

        GraphicsConfiguration gc = device.getDefaultConfiguration();
        frame = new JFrame(gc);

        device.setFullScreenWindow(frame);

        if (device.isDisplayChangeSupported())
            device.setDisplayMode(displayModes[0]);

        frame.createBufferStrategy(2);
        bufferStrategy = frame.getBufferStrategy();

        timer = new Timer(1000 / 50, new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent arg0) {
                Graphics2D g = null;
                try {
                    g = (Graphics2D) bufferStrategy.getDrawGraphics();
                    render(g);
                } finally {
                    g.dispose();
                }
                bufferStrategy.show();
            }

        });
    }

    private void render(Graphics2D g) {
        g.setColor(Color.BLACK);
        g.fillRect(0, 0, bounds.width, bounds.height);
    }

    public void start() {
        timer.start();
    }

    public void stop() {
        timer.stop();
    }
}
Copy after login

Implementing Mouse Click and Key Press Event Handling

The following code extends the skeleton by adding event handling for mouse clicks and key presses in full screen mode:

import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

class Applet extends Applet {

    @Override
    public void init() {
        super.init();
        this.addMouseListener(new MouseAdapter() {

            @Override
            public void mouseClicked(MouseEvent e) {
                // Handle mouse click event
            }
        });

        this.addKeyListener(new KeyAdapter() {

            @Override
            public void keyPressed(KeyEvent e) {
                // Handle key press event
            }
        });
    }
}
Copy after login

The MouseAdapter class provides the necessary methods for handling mouse events, such as clicks. Similarly, the KeyAdapter class simplifies handling of key press events.

Usage

To utilize these event handling capabilities, instantiate the Applet class and call its init() method.

Conclusion

This code demonstrates how to effectively handle keyboard and mouse events while the application is operating in full screen exclusive mode. The provided solution is simple, reliable, and compatible with the full screen environment.

The above is the detailed content of How to Handle Keyboard and Mouse Events in Java's Full-Screen Exclusive Mode?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template