> Java > java지도 시간 > Java의 전체 화면 독점 모드에서 키보드 및 마우스 이벤트를 처리하는 방법은 무엇입니까?

Java의 전체 화면 독점 모드에서 키보드 및 마우스 이벤트를 처리하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-19 12:04:10
원래의
988명이 탐색했습니다.

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

Java의 전체 화면 독점 모드에서 키보드 및 마우스 이벤트 처리

패시브 렌더링 모드에서 작동할 때 KeyListener 및 ActionListener 인터페이스를 사용하여 생성된 이벤트를 관리할 수 있습니다. 사용자. 그러나 애플리케이션이 전체 화면 모드로 전환되면 이벤트 처리에 대한 기존 접근 방식이 예상대로 작동하지 않을 수 있습니다.

이 문서에서는 전체 화면 모드에서 이벤트를 처리하는 올바른 방법을 설명합니다. 제공된 스켈레톤 코드를 확장하여 코드를 간결하게 유지하면서 마우스 클릭 및 키 누름 이벤트 처리를 구현합니다.

전체 화면 모드를 위한 코드 스켈레톤

다음 코드 스켈레톤은 전체 화면을 위한 단계를 설정합니다. 독점 모드를 사용하고 타이머를 사용하여 창에 그래픽을 렌더링합니다.

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();
    }
}
로그인 후 복사

마우스 클릭 및 키 누름 이벤트 구현 처리

다음 코드는 전체 화면 모드에서 마우스 클릭 및 키 누름에 대한 이벤트 처리를 추가하여 스켈레톤을 확장합니다.

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
            }
        });
    }
}
로그인 후 복사

MouseAdapter 클래스는 다음과 같이 마우스 이벤트를 처리하는 데 필요한 메서드를 제공합니다. 클릭수만큼. 마찬가지로 KeyAdapter 클래스는 키 누르기 이벤트 처리를 단순화합니다.

사용법

이러한 이벤트 처리 기능을 활용하려면 Applet 클래스를 인스턴스화하고 해당 init() 메서드를 호출하세요.

결론

이 코드는 애플리케이션이 전체 화면 독점 모드에서 작동하는 동안 키보드 및 마우스 이벤트를 효과적으로 처리하는 방법을 보여줍니다. 제공되는 솔루션은 간단하고 안정적이며 전체 화면 환경과 호환됩니다.

위 내용은 Java의 전체 화면 독점 모드에서 키보드 및 마우스 이벤트를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿